Как правильно переходить из 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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