Android 视图模型转换地图不起作用

Ma2*_*340 4 android kotlin android-livedata

我有一个带有按钮的视图 -

我的查看代码 -

private val viewModel: MyViewModel by viewModel()

    override fun onCreateView(...): View? {
        //Button click
        view.getMyData.setOnClickListener {
            viewModel.onGetDataClicked.observe(this, Observer {
            view?.progressBar?.isVisible = it.loading
            view?.description?.text = it.data.value
        })
        }
        return view
    }
Run Code Online (Sandbox Code Playgroud)

我的视图模型代码 -

val viewState = MyViewState()

    val onGetDataClicked =
        Transformations.map(myDomain.getData(MyAction.GetMyDataAction)) {
            when (it) {
                is MyResult.Loading -> viewState.copy(loading = true, error = null)
                is MyResult.Success -> viewState.copy(
                    loading = false,
                    data = it.data,
                    error = null
                )
                is MyResult.Error -> viewState.copy(
                    loading = false,
                    error = it.error
                )
                else -> viewState.copy(loading = false)
            }
        }
Run Code Online (Sandbox Code Playgroud)

这是 MyViewState() 的代码 -

data class MyViewState(
    val loading: Boolean = false,
    val data: MyModel = MyModel(),
    val error: MyResult.ErrorType? = null
) : ViewState
Run Code Online (Sandbox Code Playgroud)

当我打开应用程序并单击按钮时,调用将转到视图模型,然后从那里转到域,然后我观察我的数据。但在第二次单击按钮时,从我的角度来看,根本没有调用视图模型。可能是什么问题呢?

Ken*_*nji 7

问题是,如果您没有在实时数据上注册任何观察者,它就不会触发。因此您无法在 viewModel 中调试或查看它。