I have a composable ‘screen’, that uses `LaunchedE...
# compose
t
I have a composable ‘screen’, that uses
LaunchedEffect
to perform one-off navigation events, based on state. So, for example, if the current
viewState
is
Unauthorized
, I might use a
LaunchedEffect
to call
navigateToLoginScreen()
But, let’s say there are two of these launched effects, with two possible navigation destinations. I’ve noticed an issue where, if the
viewState
updates and triggers a navigation event - the
viewState
can again update before that navigation transition is complete - triggering yet another navigation event. This means my navigation can end up in an unexpected state. Is there a way to ensure a LaunchedEffect is cancelled before the composition leaves the tree (like, during a navigation transition)?
b
i
FWIW, probably a better question for #compose-android going forward
But yep, checking for
RESUMED
is enough, see the previous time we discussed this: https://kotlinlang.slack.com/archives/CJLTWPH7S/p1677626180373409?thread_ts=1677626180.373409&cid=CJLTWPH7S
t
Ohhh I thought compose and compose-android were merged
i
Just the opposite, #compose-android is the new home for Android only stuff: https://kotlinlang.slack.com/archives/CJLTWPH7S/p1678882852468139
t
No worries, thanks 🙂
Thanks all. I tried this approach (only navigate if the initiating back stack entry is resumed). It solves one problem, but introduces another! I’ve asked over at #compose-android. It feels rather complicated 😞 https://kotlinlang.slack.com/archives/C04TPPEQKEJ/p1679372439660899