如何在每次显示可组合项时执行代码(并且仅执行一次)

J. *_*Doe 1 android kotlin android-jetpack-compose

我正在创建一个Composable负责向用户显示通知的程序。每次用户访问该页面时Composable,我都想执行一个查询来清除通知计数。我只想在Composable出现时执行该查询,而不是每次Composable由于配置更改等原因而重新组合时执行该查询。

本质上,我正在寻找相当于https://developer.apple.com/documentation/swiftui/view/onappear(perform:)的内容。

我可以在 Jetpack Compose 中使用任何方法吗?

byl*_*azy 6

使用 LaunchedEffect(链接

LaunchedEffect(Unit) {
    // Actions to perform when LaunchedEffect enters the Composition 
}
Run Code Online (Sandbox Code Playgroud)

它需要一个或多个key参数,用于取消正在运行的效果并启动新的效果。Unit因为您只需要使用不可变的东西作为键(例如or )执行一次代码true