composable(
AppScreen.main,
) { backStackEntry ->
// val parentEntry = remember {
// navController.getBackStackEntry("parent")
// }
Log.d("test", "main: $backStackEntry")
val viewModel = hiltViewModel<UserViewModel>(mainActivity)
// val viewModel = hiltViewModel<UserViewModel>(navBackStackEntry!!)
AppScaffold(viewModel)
}
这是我要实现共享ViewModel的其中之一的页面。 书上描述使用BackStackEntry也就是composable函数中的,最后那个参数中提供的参数。 但是发现把BackStackEntry作为,初始化ViewModel的ViewModelStoreOwner参数是无效的。 经过打印,两个页面的BackStackEntry,并不是一个对象。所以产生的viewModel也不是一个对象。
解决方法:将activity作为ViewModelStoreOwner。