android-jetpack-compose - mutableStateOf 值更改后不会触发 Recompose
问题描述
我想通过更改 mutableStateOf mCurrentSplashTaskIndex 来运行不同的任务。但是 Jetpack Compose recompose 在 executeCurrentTask 运行执行 task1 后不会触发,其中 mCurrentSplashTaskIndex 更改为 1。代码如下。你愿意帮帮我吗?非常感谢。
class SplashViewModel : ViewModel() {
private val Tag = "SplashViewModel"
private val mCurrentSplashTaskIndex = mutableStateOf(0)
@Composable
fun executeCurrentTask() {
when (mCurrentSplashTaskIndex.value) {
0 -> {
Task1()
}
1 -> {
Task2()
}
}
}
@Composable
private fun Task1() {
Log.d(Tag, "Task1 start...")
findNextTask()
}
@Composable
private fun Task2() {
Log.d(Tag, "Task2 start...")
}
private fun findNextTask() {
Log.d(Tag, "Find out next available task.")
mCurrentSplashTaskIndex.value = mCurrentSplashTaskIndex.value + 1
Log.d(Tag, "Got next available task ${mCurrentSplashTaskIndex.value}")
}
}
解决方案
推荐阅读
- react-native - react-native install vs link有什么区别?
- python - TensorFlow 的占位符初始化不同于 TensorFlow 的常量初始化。为什么?
- git - Git windows克隆符号链接
- java - Java左移运算符
- regex - 无法增加在正则表达式匹配的第 1 组中捕获的数字
- javascript - 简单的 D3.js 条形图:组“g”位置和尺寸搞砸了
- python - 如何在 PyPDF2 中使用 addLink()?
- asp.net - 如何将微服务集成到 asp.net 框架中?
- angular - Ionic 3- 可能从组件触发 IonChange 事件?
- vue.js - babel-plugin-module-resolver 不适用于 jest