LaunchedEffect ничего не запоминает. Он исполняет переданную ему лямбду.
не пробовали LaunchedEffect(_text) { ... }?
скорее всего заработает, но идея в том, чтобы не перезапускать лямбду в LaunchedEffect
А пробовали не использовать _text, а завязаться сразу на text?
Да, первое, что сделал. Также безрезультатно (
а можете объяснить, какой результат хотите получит? При изменении параметра продолжить выполнять лямбду с новым значением?
да, именно так: чтобы лямбда "поймала" новое значение и без ее рестарта
Потому что когда второй раз вызывается Sample, то для_text создаётся новый objectRef, но launchedeffect использует лямбду, которая захватила первый objectref, поэтому при перевызовах Sample значение не обновляется. Чтобы заработало надо использовать remember (например rememberUpdatedState), тогда при перевызовах будет видно последнее значение
то есть получается, что при перевызове Sample _text - это уже совсем новая переменная, а ObjectRef в лямбда ссылается на старый _text ?
обычный remember с ключом кстати не работает в данном случае
Спасибо
Обсуждают сегодня