为什么 Android Studio Arctic Fox 将 rememberSaveable 变量标记为未使用?
Why is rememberSaveable variable flagged as unused by Android Studio Arctic Fox?
Android Studio Arctic Fox(补丁 3)标记,“从未使用以下可组合项中分配给 var isVisited: Boolean
的值 true
”:
@Composable
fun MainView(navController: NavController) {
var isVisited by rememberSaveable { mutableStateOf(false) }
if (!isVisited) {
isVisited = true // never used?
navController.navigate("NextView")
}
Button(onClick = { navController.navigate("NextView") }) {
Text(text = "MainView")
}
}
虽然它显然按预期工作:防止 MainView
在随后访问 MainView
时导航到 NextView
。这是 NextView
的定义:
@Composable
fun NextView(navController: NavController) {
Button(onClick = { navController.popBackStack() }) {
Text(text = "NextView")
}
}
Android Studio 是否根本无法识别跨重组的变量使用?或者是否有更惯用的方式在重组时有条件地执行代码?感谢您的任何回答或指示。
我正在为 API 级别 31 使用 Kotlin 1.5.31、Compose 1.1.0-alpha06、navigation-compose 2.4.0-alpha04、lifecycle-runtime-ktx 2.4.0-rc01 进行构建,尽管我在 API 级别 30、Kotlin 1.5.21、Compose 1.0.1、navigation-compose 2.4.0-alpha04、lifecycle-runtime-ktx 2.3.1 上看到了相同的行为。 (如果有帮助,我很乐意分享我的 MainActivity
我设置 NavHost
的地方以及这两个视图或其他依赖项和系统信息。)
行首:您可以安全地忽略该警告,因为警告的目的是防止开发人员使用不必要的系统资源。由于一些内部荧光笔逻辑错误(也许?),它会将一个有用的变量标识为未使用的变量,但由于您知道您正在代码流中积极使用它,因此您可以放弃该警告。如果它打扰了你,只需用注释抑制它。
正文内容:-
不用担心,它有时会发生。对我来说似乎没有错误,只需尝试删除该行,然后在尽可能多地使用代码完成的同时重新添加它。如果这没有帮助,只需编译项目,然后查看构建日志。如果它没有显示警告:var 'isVisited' is never used
,那么您可以放心,因为这将是工作室代码突出显示中的错误。只要您没有收到任何构建时警告,请确保它不会对性能或其他方面造成任何威胁。
Android Studio Arctic Fox(补丁 3)标记,“从未使用以下可组合项中分配给 var isVisited: Boolean
的值 true
”:
@Composable
fun MainView(navController: NavController) {
var isVisited by rememberSaveable { mutableStateOf(false) }
if (!isVisited) {
isVisited = true // never used?
navController.navigate("NextView")
}
Button(onClick = { navController.navigate("NextView") }) {
Text(text = "MainView")
}
}
虽然它显然按预期工作:防止 MainView
在随后访问 MainView
时导航到 NextView
。这是 NextView
的定义:
@Composable
fun NextView(navController: NavController) {
Button(onClick = { navController.popBackStack() }) {
Text(text = "NextView")
}
}
Android Studio 是否根本无法识别跨重组的变量使用?或者是否有更惯用的方式在重组时有条件地执行代码?感谢您的任何回答或指示。
我正在为 API 级别 31 使用 Kotlin 1.5.31、Compose 1.1.0-alpha06、navigation-compose 2.4.0-alpha04、lifecycle-runtime-ktx 2.4.0-rc01 进行构建,尽管我在 API 级别 30、Kotlin 1.5.21、Compose 1.0.1、navigation-compose 2.4.0-alpha04、lifecycle-runtime-ktx 2.3.1 上看到了相同的行为。 (如果有帮助,我很乐意分享我的 MainActivity
我设置 NavHost
的地方以及这两个视图或其他依赖项和系统信息。)
行首:您可以安全地忽略该警告,因为警告的目的是防止开发人员使用不必要的系统资源。由于一些内部荧光笔逻辑错误(也许?),它会将一个有用的变量标识为未使用的变量,但由于您知道您正在代码流中积极使用它,因此您可以放弃该警告。如果它打扰了你,只需用注释抑制它。
正文内容:-
不用担心,它有时会发生。对我来说似乎没有错误,只需尝试删除该行,然后在尽可能多地使用代码完成的同时重新添加它。如果这没有帮助,只需编译项目,然后查看构建日志。如果它没有显示警告:var 'isVisited' is never used
,那么您可以放心,因为这将是工作室代码突出显示中的错误。只要您没有收到任何构建时警告,请确保它不会对性能或其他方面造成任何威胁。