问题如下;我有一个可变字符串变量,声明为活动的实例变量。当我像这样使用它时,它会按预期工作。当文本字段值更改时,文本值也会更改。
class MainActivity : ComponentActivity() {
private var text = mutableStateOf("Hello!")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
AppTheme {
Surface(modifier = Modifier.fillMaxSize(), color = MaterialTheme.colorScheme.background) {
TextField(value = text.value, onValueChange = {
text.value = it
})
Text(text = text.value)
}
}
}
}
}
简短的回答:记住不是让变量能够重组,而是避免重组。
现在,我的意思是,通过记住,compose 会记住变量,并且其值在重组中保留。
例如:如果您有另一个可变状态定义了另一个文本块,那么当您更改这个新变量并且您不记得时,第一个变量也会被重新组合。如果您确实记得,状态将被保留,当您有大型应用程序时,这会更有效。