且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Jetpack组合在视图模型中观察muableStateOf

更新时间:2022-12-30 14:57:08

此问题的***解决方案是将unidirectional flowSwitchRow一起使用,@Codecameo建议使用lambda。

但如果要观察Viewmodel中的MuableState,则可以使用snapshotFlow%s作为

var greet: MutableState<Boolean> = mutableStateOf(user.pushSetting.greet)

init {
    snapshotFlow { greet.value }
        .onEach {
            updateUser()
        }
        .launchIn(viewModelScope)
        //...
}
从可观察快照状态创建流。(例如,国家持有者 由muableStateOf返回。)SnaphotFlow创建运行的流 块,并发出结果,记录任何快照 被访问的状态。收集继续时,如果新的快照 会更改块访问的状态,则流将运行 块,重新记录被访问的快照状态。如果 块的结果不等于前一个结果,则流程将 发出那个新的结果。(此行为类似于 Flow.DiffertUntilChanged。)收集将无限期地继续进行 除非它被其他流的使用明确取消或限制 运算符。