在我的代码中,我调用了一个可组合函数:
ShowSomeComposable(
modifier = Modifier,
isActive = mutableStateOf(true),
)
我可以编译它并在本地运行。但是我的 CI 系统上的 Lint 检查抱怨:
myFile.kt:147: 错误:在组合过程中创建状态对象 不使用 remember [UnrememberedMutableState from androidx.compose.runtime] isActive = mutableStateOf(true),
那我该如何更换呢?
我还不是专家,但从我在这里看到的 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
为什么需要在这里使用 mutableState 而不是简单的布尔值?
我的意思是,大多数时候,当我使用
mutableStateOf
时,我会在 viewModel 中或直接在可组合函数中使用它。例如:
var boolean by mutableStateOf(true)