错误:在不使用 remember [UnrememberedMutableState from androidx.compose.runtime] 的情况下在组合期间创建状态对象

问题描述 投票:0回答:2

在我的代码中,我调用了一个可组合函数:

ShowSomeComposable(
    modifier = Modifier,
    isActive = mutableStateOf(true),
) 

我可以编译它并在本地运行。但是我的 CI 系统上的 Lint 检查抱怨:

myFile.kt:147: 错误:在组合过程中创建状态对象 不使用 remember [UnrememberedMutableState from androidx.compose.runtime] isActive = mutableStateOf(true),

那我该如何更换呢?

kotlin android-jetpack-compose android-jetpack
2个回答
0
投票

我还不是专家,但从我在这里看到的 https://developer.android.com/jetpack/compose/state#state-in-composables

建议您的代码作为:

var isActiveValue by remember { mutableStateOf(true) }

ShowSomeComposable(
    modifier = Modifier,
    isActive = isActiveValue,
) 

这首先向我显示了警告,处理方法是检查您是否有这些导入(可以通过 IDEA 建议的操作或手动添加)

import androidx.compose.runtime.setValue
import androidx.compose.runtime.getValue

-1
投票

为什么需要在这里使用 mutableState 而不是简单的布尔值?

我的意思是,大多数时候,当我使用

mutableStateOf
时,我会在 viewModel 中或直接在可组合函数中使用它。例如:

var boolean by mutableStateOf(true)
© www.soinside.com 2019 - 2024. All rights reserved.