Функция Compose перекомпоновывает, когда передает значение состояния другой функции.Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Функция Compose перекомпоновывает, когда передает значение состояния другой функции.

Сообщение Anonymous »

Кажется, я не нашел объяснения этому простому случаю.
Что-то простое, например, модель представления, содержащая встречный поток:

Код: Выделить всё

class TestCounter : ViewModel() {
private val _counter = MutableStateFlow(0)
val counter = _counter.asStateFlow()

init {

viewModelScope.launch {

while (true){
delay(1000)
_counter.update {
it + 1
}
}
}
}
}
И компонуемая функция, которая будет перекомпоновывать себя каждый раз, когда передает значение собранного состояния другой функции. Если я передам сам объект состояния другой функции, рекомпозиции не произойдет. Хотя я читал, что это не лучшая практика.

Код: Выделить всё

@Composable
fun App() {

val testCounter = TestCounter()

val counter = testCounter.counter.collectAsState()

SideEffect {
println("RECOMPOSING EVERY TIME IF PASSING VALUE")
}

DrawCount(counter.value)
//  DrawCount(counter)

}
Я что-то упустил. Если это нормальное поведение, то как бы я использовал делегатов (по) или класс данных для состояния пользовательского интерфейса, содержащий набор значений для различных функций. Это всегда приводит к ненужным рекомпозициям.
Не имеет значения, стабильно значение или нет.

Подробнее здесь: https://stackoverflow.com/questions/784 ... er-functio
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»