0

我正在编写一个使用一个 Activity 并具有 2 个片段的应用程序。我想通过使用实时数据在它们之间共享数据,所以我创建了一个 SharedViewModel 扩展 ViewModel() 并且这个类的变量名为:

 private val _mutableUser = MutableLiveData<UserEntity>()
 val userGetFromValidate: LiveData<UserEntity> = _mutableUser
fun setUserFromValidate(userEntity: UserEntity) {
       _mutableUser.value = userEntity
     }

然后我创建了一个 BaseViewModel 扩展 SharedViewModel ,它具有:

protected val sharedViewModel = SharedViewModel()

我有 LoginFramentViewModel 和 UserFragmentViewModel 扩展 BaseViewModel,它们的 2 个实例我使用 activityViewModels() 的委托。我在LoginFragmentViewModel 中为userGetFromvalidate 设置了值。

sharedViewModel.setUserFromValidate(userEntity)

LoginFragment 导航到 UserFragment。但是当我打电话时:

sharedViewModel.userGetFromValidate.value  

从 LoginFragmentViewModel 它返回 userEntity,当我在 UserFragmentViewModel 中调用它时它返回 null。我不知道为什么,请帮助我。提前致谢。

4

0 回答 0