StateFlow의 값을 변경했을 때 컴포즈에 통지가 되는데 List의 경우 갯수가 동일하고 특정 요소의 프로퍼티만 변경하는 경우 안 되는 예
val items: StateFlow<List<Todo>> = _items
fun toggle(index: Int) {
_items.value = _items.value.map {
if (it.uid == index) {
it.isDone = !it.isDone
it
} else it
}
}
되는 예. 객체를 갈아끼우면 됨
val items: StateFlow<List<Todo>> = _items
fun toggle(index: Int) {
_items.value = _items.value.map {
if (it.uid == index) {
it.copy(isDone = !it.isDone)
} else it
}
}