Вступить в клуб →
средняявопросMVVM, MVI и многомодульность

Быстрые нажатия «+» в корзине иногда теряют одно добавление

fun onPlus(itemId: Long) = viewModelScope.launch(Dispatchers.Default) {
    val current = _state.value
    _state.value = current.copy(count = current.count + 1)
}

Пользователь быстро жмёт «+» три раза, счётчик показывает 2. Воспроизводится нестабильно. Как исправить, сохранив фоновый диспетчер?

  • Менять состояние через _state.update { }
  • Заменить MutableStateFlow на MutableSharedFlow
  • Пометить _state аннотацией @Volatile
  • Добавить delay(100) перед чтением value

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела