簡體   English   中英

Android Studio Arctic Fox 為什么將 rememberSaveable 變量標記為未使用?

[英]Why is rememberSaveable variable flagged as unused by Android Studio Arctic Fox?

Android Studio 北極狐(補丁 3)標記,“分配給var isVisited: Boolean的值為true var isVisited: Boolean以下可組合中的var isVisited: Boolean從未使用過”:

@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從導航到NextView到隨后的訪問MainView 這是NextView的定義:

@Composable
fun NextView(navController: NavController) {
    Button(onClick = { navController.popBackStack() }) {
        Text(text = "NextView")
    }
}

Android Studio 是否根本無法識別跨重組的變量使用情況? 或者是否有更慣用的方式在可組合中有條件地執行代碼? 感謝您的任何答案或指針。

我正在使用 Kotlin 1.5.31、Compose 1.1.0-alpha06、navigation-compose 2.4.0-alpha04、lifecycle-runtime-ktx 2.4.0-rc01 為 API 級別 31 構建,盡管我已經看到了相同的行為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 ,那么您可以放松一下,因為它會成為工作室代碼熒光筆中的錯誤。 只要您沒有收到任何構建時間警告,請確保它不會對性能或其他方面構成任何威脅。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM