在我找到的示例(here或here)中,我看到derivedStateOf
总是包装在remember
块中.判断重新组合的计数,我看不出有什么区别
val foo = remember { derivedStateOf { someState } }
和
val foo = derivedStateOf { someState }
谁能给我举一个结果不同的例子?
编辑: 所以我在这个例子中得到了一个不同的结果:
@Composable
fun Test() {
var count by remember {
mutableStateOf(0)
}
val moreThanOne = derivedStateOf {
Log.d("foo", "Calculate")
count > 1
}
Log.d("foo", "Read")
moreThanOne.value
Button(
onClick = {
Log.d("foo", "Clicked")
count += 1
}
) {
Text(text = "Increment")
}
}
单击该按钮两次会显示以下日志(log):
Read
Calculate
Clicked
Calculate
Clicked
Calculate
Read
Calculate
然而,用remember
来包装derivedStateOf
会记录如下:
Read
Calculate
Clicked
Calculate
Clicked
Calculate
Read
仍然不能完全确定为什么我会看到我所看到的.