Jetpack Compose: что означает операция «вход» или «выход»

Откуда: https://developer.android.com/jetpack/compose/side-effects

«Чтобы безопасно вызывать функции приостановки изнутри компонуемого объекта, используйте компонуемый объект LaunchedEffect. Когда LaunchedEffect входит в композицию, он запускает сопрограмму с блоком кода, переданным в качестве параметра. Сопрограмма будет отменена, если LaunchedEffect покинет композицию. Если LaunchedEffect равен перекомпонован с другими ключами (см. раздел «Эффекты перезапуска» ниже), существующая сопрограмма будет отменена, а новая функция приостановки будет запущена в новой сопрограмме».

Что означает, что «LaunchedEffect» «входит» в композицию? Что означает в контексте «дерева композиции»? Или оставить это?

Кроме того, говорит ли это о том, что если ключ будет изменен к моменту следующей рекомпозиции, операция не будет запущена второй раз?

Пример:

      @Compose
fun SomeThingFun() {
var launchedEffectKey = remember { mutableState(false) }
LaunchedEffect(launchedEffectKey) {
//do something fun
launchedEffectKey.value = true
}
}

Означает ли это, что при перекомпоновке SomeThingFun после изменения значения launchedEffectKey LaunchedEffect не будет запускаться во второй раз?

0 ответов

Другие вопросы по тегам