【问题标题】:How to prevent execution's of action from pop backstack from previous screen in jetpack compose如何防止在jetpack compose中从上一个屏幕弹出回栈执行操作
【发布时间】:2021-10-14 15:21:43
【问题描述】:

我有两个屏幕 A 和屏幕 B

屏幕A执行

sharedPrefs.setUserLatLng(CURRENT_LOCATION_LAT_KEY, CURRENT_LOCATION_LNG_KEY, LatLng(location.latitude, location.longitude))
commonViewModel.onLatLngChange(LatLng(location.latitude, location.longitude))

Launch Effect 中的这两行代码

当在屏幕 A 中单击按钮时,它会导航到屏幕 B

一切正常。

当我从屏幕 B 按下时。

屏幕A执行上面提到了两行代码。我想在屏幕 B 的后按时阻止该执行

【问题讨论】:

    标签: kotlin android-jetpack-compose


    【解决方案1】:

    您可以保存一个标志来指示此副作用是否已被处理,如下所示:

    var userLatLngUpdated by rememberSaveable { mutableStateOf(false) }
    if (!userLatLngUpdated) {
        LaunchedEffect(Unit) {
            // your code 
            userLatLngUpdated = true
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-04
      • 1970-01-01
      • 2023-01-24
      • 1970-01-01
      • 2023-01-31
      • 1970-01-01
      • 2018-11-28
      • 2022-10-23
      相关资源
      最近更新 更多