kotlin 在使用. observveAsState()时,如何在更改MutableLiveData的值后开始执行代码块?

unguejic  于 2022-11-25  发布在  Kotlin
关注(0)|答案(1)|浏览(198)

在使用. observveAsState()时,如何在更改MutableLiveData的值后开始执行代码块?
范例:MutableLiveData变更后,需要呼叫吐司。

@Composable
fun TextInfo() {
    val isSuccess by remember { viewModel.isSuccess.observeAsState() }//var isSuccess = MutableLiveData<Boolean>() — in ViewModel

    LaunchedEffect(isSuccess) {
        Log.d("IS SUCCESS", "trues")
    }
}
ldioqlga

ldioqlga1#

显示吐司是一种副作用,因此您需要将其放在LaunchedEffect中。请将LiveData状态设置为LaunchedEffect的键。这样,只有在此特定LiveData的值发生更改时,才会出现副作用。

val myDataState = remember { someLiveData.observeAsState() }
LaunchedEffect(myDataState) {
    // show the toast
}

请参阅documentation here

相关问题