我在每个屏幕上使用Koin和Fragment + ViewModel。在我的HomeFragment中,我有一个带有post的列表。当用户选择post时,我将用户导航到PosDetailsFragment,并希望显示有关post的信息。
class HomeFragment : Fragment() {
private val homeViewModel by viewModel<HomeViewModel>()
//when user select post I set that value to LeadViewModel (I want to make that viewModel as common for some fragment)
leadViewModel.state.selectedPost.value = action.post
}
class PostDetailsFragment : Fragment() {
private val leadViewModel by sharedViewModel<LeadViewModel>()
//always null
val post = leadViewModel.state.selectedPost.value
}我的Koin模块:
viewModel { LeadViewModel() }
viewModel { HomeViewModel(get(bottomNavigationCommander), get()) }
viewModel { AddPostViewModel() }怎么啦?看起来PostDetailsFragment中的LeadViewModel实例与HomeFragment中的完全不同?
发布于 2021-06-24 21:23:52
尝试将val设置为支持字段
val post
get() = leadViewModel.state.selectedPost.valuehttps://stackoverflow.com/questions/68116269
复制相似问题