[英]Managing State with @Model Jetpack Compose doesn't work
我有一个具有@Model 状态的撰写按钮。
@Model
class CounterState(var count: Int = 0)
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
MyApp {
Counter(CounterState())
}
}
}
}
@Composable
fun Counter(state: CounterState) {
Button(
text = "I've been clicked ${state.count} times",
onClick = {
state.count++
},
style = ContainedButtonStyle(color = if (state.count > 5) Color.Green else Color.White)
)
}
当我单击按钮时,它的文本没有更新。
有谁知道为什么?
在这条线上
Counter(CounterState())
您每次都在创建一个新的CounterState
每次重组时都会将其重置为零。 您应该在组合之外创建一次它,然后将其存储在一个变量中,以便每次都传递给Counter
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.