我想在每次设置某个状态后的两秒钟内执行一些操作。
- viewModel内的代码:*
var isLoading = mutableStateOf(LoadingState.NONE)
set(value) {
Timber.d("Custom Setter") //Not Firing
//Do something when the state is set to success.
if(value.value == LoadingState.SUCCESS){
viewModelScope.launch {
delay(2000L)
dispatchEvent(//some event)
}
}
field = value
}
set{}块根本没有运行。但值设置正确。
使用带有by
关键字的委托时,Delegated property cannot have accessors with non-default implementations
有没有办法让自定义setter在Jetpack Compose中为mutableStateOf()工作?
2条答案
按热度按时间kiayqfof1#
我认为你可以用snapshotFlow来实现这个用例。它可以从一个给定的compose
State
创建一个Flow
。rqenqsqc2#
基于@ArpitShukla的答案。我们也可以使用作用域函数来封装代码块。