我认为“记住”的两个用例存在。
第一个是
@Composable
fun abc() {
var aa = remember { mutableStateOf(true) }
}
其次
@Composable
fun abc() {
var aa by remember { mutableStateOf(true) }
}
是否存在功能差异?还是只是为了方便?
我认为“记住”的两个用例存在。
第一个是
@Composable
fun abc() {
var aa = remember { mutableStateOf(true) }
}
其次
@Composable
fun abc() {
var aa by remember { mutableStateOf(true) }
}
是否存在功能差异?还是只是为了方便?
这只是为了方便起见,简化语法。通过使用delegate(关键字),您可以跳过与值相关的内容,因为它在幕后完成。
在文档中,您可以阅读到:
有三种方式在composable中声明MutableState对象:
val mutableState = remember { mutableStateOf(default) }
var value by remember { mutableStateOf(default) }
val (value, setValue) = remember { mutableStateOf(default) }这些声明是等效的,并提供作为状态不同用法的语法糖。您应该选择产生易于阅读的代码的声明方式,以编写您正在编写的composable。
干杯!
=
的话。@Composable
fun abc() {
var aa = remember { mutableStateOf(true) }
}
那么var aa
的类型将为MutableState<Boolean>
。
如果使用by
的话
@Composable
fun abc() {
var aa by remember { mutableStateOf(true) }
}
那么 var aa
的类型将是 Boolean
。
就个人而言,我更喜欢使用 by
来保留原始类型。