小编Yur*_*itz的帖子

如何让 LaunchedEffect 运行一次并且不再运行?

我知道它LaunchedEffect(key)是在组合开始时执行的,并且在更改时也会被取消并重新执行key。但是,我希望它只执行一次,不再执行,我正在使用以下解决方法,但我觉得我错过了一些东西:

if (!launchedBefore) {
   LaunchedEffect(null) {
      //stuff

      launchedBefore = true
   }
}
Run Code Online (Sandbox Code Playgroud)

上面的代码工作得很好。但这感觉像是一个捉襟见肘的解决方法,同时可以做一些更简单的事情。我是否误解了 LaunchedEffect 的完整工作原理?

我尝试使用null和Unit作为键,因为它们从未改变,但每次组合发生时都会执行代码。

android kotlin android-jetpack-compose jetpack-compose

7
推荐指数
1
解决办法
4788
查看次数