在我的代码中,我调用了一个可组合的函数:
ShowSomeComposable(
modifier = Modifier,
isActive = mutableStateOf(true),
)
我可以编译它并在本地运行。但我的CI系统上的Lint检查抱怨道:
myFile.kt:147:错误:在合成过程中创建状态对象不使用memberedMutableState fromandroidx.compose.runtime]isActive=可变状态(true(,
那么我该如何替换?
我还不是专家,但从我在这里看到的情况来看https://developer.android.com/jetpack/compose/state#state-可堆肥
将建议您的代码工作为:
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 booleanVar by remember { mutableStateOf(true) }