如何使用 ViewModel(s) 在片段之间传递数据?

How to pass data between fragments using ViewModel(s)?

我在每个屏幕上使用 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 中的完全不同?

尝试将 val 作为支持字段

        val post
          get() = leadViewModel.state.selectedPost.value