Reputation: 1388
I use Koin and Fragment + ViewModel per screen. In my HomeFragment I have list with post. When user selects post I navigate user to PosDetailsFragment and I want to display info about 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
}
My Koin module:
viewModel { LeadViewModel() }
viewModel { HomeViewModel(get(bottomNavigationCommander), get()) }
viewModel { AddPostViewModel() }
What is wrong? It looks like instance of LeadViewModel in PostDetailsFragment is completely different than in HomeFragment?
Upvotes: 0
Views: 528
Reputation: 618
Try making the val as backing field
val post
get() = leadViewModel.state.selectedPost.value
Upvotes: 1