微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在活动onCreate中观察mutableStateOf

如何解决如何在活动onCreate中观察mutableStateOf

看来mutableStateOf是比liveData更好的选择,但是在活动的onCreate方法中我无法观察到它的存在,它是否具有解决方法或坚持在活动中使用liveData?

// viewmodel
    var showError by mutableStateOf("")
        private set
// ...

// activity
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        viewmodel.showError.observe(this) {  // <- not work in activity
            if (it != "") {
                Toast.makeText(this,it,Toast.LENGTH_SHORT).show()
                viewmodel.onShowError()
            }
        }
    }
// ...

解决方法

您可以将showError保留为ViewModel中的LiveData

val _showError = mutableLiveData("")
val showError: LiveData
    get() = _showError

然后从任何可扩展扩展名observeAsState的可组合代码中使用它:

val showErrorState = viewModel.showError.observeAsState() 

因此,在您的活动中,您可以使用直接公开为liveData的showError

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。