Дочерний композитный перекомплектован, даже если они не потребляют ценностьAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Дочерний композитный перекомплектован, даже если они не потребляют ценность

Сообщение Anonymous »

В проекте есть вызов API и излучение данных от ViewModel с использованием потока. В ViewModel есть два потока, считая их UISTATE и вторым. И Uistate, и Secondstate - это Stateflow, которая используется в ViewModel. < /P>
Так проблема заключается в том, что при изменении uistate kidcoposable, даже если они не потребляют поток uistate. < /P>
Здесь я дал фонд, как композиционный функциональный поток, который я дал Mimic кода.@Composable

fun MainComposableScreen() {

val firstValue = vm.uiState.collectAsStateWithLifecycle() // consume ui state

val secondVal = vm.secondState.collectAsStateWithLifecycle() // consume secondState

ParentComposable(firstValue, secondVal, onClick)

}
< /code>
@Composable

ParentComposable(firstVal: State, secondUI: State, onClick: () -> Unit) {

Column {

ComposableFunOne(firstVal)

AnotherComosable(firstVal.value.accountList)

CreditComposable(firstVal.value.creditCardList)

ComposableFunTwo(secondUI) // Recompose even if not consume firstVal(uiState)

ComposableFunThree() // Recompose even if not consume firstVal(uiState)

...

}

}
< /code>
In above when uiState is changed then ComposableFunTwo, ComposableFunThree functions inside ParentComposable recompose even if they don’t consume uiState

Подробнее здесь: https://stackoverflow.com/questions/797 ... sume-value
Ответить

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

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

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

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

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