На экране одновременно крутится загрузка и висит текст ошибки
val isLoading = MutableStateFlow(false)
val error = MutableStateFlow<String?>(null)
val products = MutableStateFlow<List<Product>>(emptyList())
После ошибки пользователь нажимает «Повторить»: isLoading становится true, а error забыли сбросить. Такие несогласованные комбинации всплывают в разных местах. Какой подход MVI решает это системно?
- Одно неизменяемое состояние экрана на всё
- Сбрасывать error в начале каждой функции
- Заменить StateFlow на LiveData
- Показывать ошибку через Toast
