Как правильно переходить из ViewModel в Jetpack Compose + Hilt + ViewModel?Android

Форум для тех, кто программирует под Android
Anonymous
Как правильно переходить из ViewModel в Jetpack Compose + Hilt + ViewModel?

Сообщение Anonymous »

Я столкнулся с довольно тривиальной, но сложной проблемой. Я потратил приличное количество времени на поиск официальной документации, но, к сожалению, не нашел ответа.
Официальные документы говорят, что вам следует передать экземпляр NavController в @Composable-s и назовите его как onClick = { navController.navigate("path") . Но что произойдет, если мне придется вызвать событие навигации из ViewModel (например, перенаправление при входе в систему, перенаправление на вновь созданную страницу сообщения)? Ожидание какой-либо сопрограммы (например, HTTP-запроса) в @Composable было бы не просто плохо, но, вероятно, заставило бы Android закрыть приложение из-за заблокированного потока пользовательского интерфейса.
Неофициальные решения (документированные) в основном в форме статей Medium) основаны на концепции наличия одноэлементного класса и наблюдения за некоторым путем, содержащим MutableStateFlow.
Теоретически это звучит глупо и не помогает. на практике (не имеет побочных эффектов и не удобен для рекомпозиции, вызывает ненужную повторную навигацию).

Подробнее здесь: https://stackoverflow.com/questions/720 ... se-hilt-vi

Вернуться в «Android»