我被一个写作问题卡住了。我不明白为什么remember { mutableStateOf() }返回错误的值。例如:
remember { mutableStateOf() }
val subscribedState: State<Boolean> = remember { mutableStateOf(data.isSubscribed) }
调试时,data.isSubscribed的计算结果为true,但subscribedState的计算结果为false。原因何在?
data.isSubscribed
true
subscribedState
false
8qgya5xd1#
由remember计算的值在初始合成期间存储在Composition中,存储的值在重新合成期间返回。这意味着,当函数进行初始合成时,即使data.isSubscribed已更改,subscribedState也将保留data.isSubscribed的第一个值我想data.isSubscribed已经是你的状态了。此外,您可以通过传递任何参数来更新remember内部的状态。示例:
remember
val subscribedState: State<Boolean> = remember(data.isSubscribed) { mutableStateOf(data.isSubscribed) }
但更优雅(我猜data.isSubscribed已经是您的状态):
val subscribedState = data.isSubscribed
1条答案
按热度按时间8qgya5xd1#
由remember计算的值在初始合成期间存储在Composition中,存储的值在重新合成期间返回。
这意味着,当函数进行初始合成时,即使
data.isSubscribed
已更改,subscribedState
也将保留data.isSubscribed
的第一个值我想
data.isSubscribed
已经是你的状态了。此外,您可以通过传递任何参数来更新
remember
内部的状态。示例:
但更优雅(我猜
data.isSubscribed
已经是您的状态):