我知道它LaunchedEffect(key)是在组合开始时执行的,并且在更改时也会被取消并重新执行key。但是,我希望它只执行一次,不再执行,我正在使用以下解决方法,但我觉得我错过了一些东西:
if (!launchedBefore) {
LaunchedEffect(null) {
//stuff
launchedBefore = true
}
}
Run Code Online (Sandbox Code Playgroud)
上面的代码工作得很好。但这感觉像是一个捉襟见肘的解决方法,同时可以做一些更简单的事情。我是否误解了 LaunchedEffect 的完整工作原理?
我尝试使用null和Unit作为键,因为它们从未改变,但每次组合发生时都会执行代码。