У меня есть MainNavigationViewModel, который обрабатывает некоторые измерения, привязанные к панелям навигации, и я хочу поделиться эти измерения на некоторых экранах в NavHost.
Поэтому я инициализирую эту ViewModel в своей деятельности следующим образом:
Код: Выделить всё
@AndroidEntryPoint
class MainActivity : BaseActivity() {
override val viewModel : MainNavigationViewModel by viewModels()
override val screen: @Composable () -> Unit = {
MainNavigation(viewModel = viewModel)
}
}
Код: Выделить всё
@Composable
fun ScreenA(
navigationViewModel: MainNavigationViewModel = hiltViewModel(),
)
Но по какой-то причине он возвращает неправильный результат значения (по умолчанию из изменяемого состояния). Кажется, что каждый раз, когда я внедряю эту ViewModel, это другой ее экземпляр. Мне нужен общий экземпляр.
Поэтому, если MainNavigation обновит какое-либо значение MutableState внутри этой ViewModel, все экраны, на которых определена эта ViewModel, при необходимости будут перекомпонованы.
Подробнее здесь: https://stackoverflow.com/questions/791 ... ck-compose
Мобильная версия