android - Android Jetpack 撰写和登录屏幕
问题描述
我面临一个问题,我无法理解这里发生了什么。
我正在使用 FirebaseUI 进行身份验证,并且我的可组合组件上有这个逻辑:
if (isAnonymousUser && authResultCode != AuthResultCode.CANCELLED) {
LaunchedEffect(true) {
loginLauncher.launch(viewModel.buildLoginIntent()) //This trigger the UI Sign in flow
}
}
if (!isAnonymousUser) {
LaunchedEffect(true) {
navController.popBackStack()
navController.navigate(Screen.HomeScreen.route)
}
}
问题是这些行
if (!isAnonymousUser) {
LaunchedEffect(true) {
navController.popBackStack()
navController.navigate(Screen.HomeScreen.route)
}
}
如果我删除LaunchedEffect
,我可以移动到,HomeScreen
但是navController.navigate
在循环中调用 并且应用程序变得不可用。这来自视图模型:
val isAnonymousUser = viewModel.isAnonymousUser.collectAsState().value
相反,使用LaunchedEffect
它不会发生。怎么了?帮我理解一下,我觉得问题出MutableState
在isAnonymousUser
解决方案
推荐阅读
- r - 闪亮显示来自系统调用的多行文本输出
- c++ - 在二维数组上使用 delete[] 时访问冲突
- reactjs - 页面刷新时 Redux 存储未定义
- kotlin - “===”在 Kotlin 中。这是什么意思?
- javascript - 在 Rails 6 上使用 Jquery 的引导模式
- r - 为数据框中的一个特定字符串打印新创建的值(总统姓名)
- robotframework - Robotframework - 访问正则表达式匹配组
- css - 如何使用`overflow:auto;`自定义滚动条集?
- php - 关键字'use'如何在php(laravel)中工作
- reactjs - android Wix-Navigation 中图标的 React-native 问题,在 iOS 中运行良好