если поменяется какой либо параметр т.е если у тебя в состояние будет часть топика, а потом придет весь, то компоуз сам сделает рекомпозицию
по поводу этого интересен вот какой вопрос. я по документации не могу понять если у меня есть вот такая функция. и я пришлю в нее новые список topics, в котором изменился только один элемент у меня пересоздадуться все items или оно достаточно умное, чтобы пересоздать только изменившийся item?
Задай параметр key у items ещё, потому что по умолчанию используется индекс в списке.
а разве оно не проверяет на equals?
насколько я понял, если задам key, то при подаче нового списка lazyColumn будет искать элемент по ключу в новом списке, а после сравнивать по equals (и если equals == false, то рекомпозиции не будет). верно?
>в мире View я бы использовал notifyItemChanged(position) а в мире compose как строить архитектуру? Заюзать mutableStateListOf<Data>, внутри Data будет text: String и additionalData: AdditionalData? = null, собственно заполняешь сначала список датой где additionalData null, в композиции чекаешь, если additionalData == null то рисуешь плейсхолдер, иначе эту дату. Когда additionalData загрузится обновляешь список list[index] = list[index].copy(additionalData = additionalData)
да, это похоже неплохой вариант выше посоветовали тоже на мой взгляд хороший способ (+ способ тригерить загрузку данных) — использовать DisposableEffect + remember { mutableState }
если добавить листу key, то можно ещё rememberSaveable + launchedEffect
Обсуждают сегодня