Лайк отобразился сразу, запрос упал, а счётчик так и остался увеличенным
Кнопка «Нравится» использует оптимистичное обновление: в onMutate счётчик в кэше увеличивается на единицу, не дожидаясь ответа сервера. Сервер ответил ошибкой, но пользователь продолжает видеть свой лайк и увеличенный счётчик до перезагрузки страницы.
Что пропущено в реализации?
- Снимок данных в onMutate и откат к нему в onError
- Вызов mutate нужно обернуть в try/catch
- Оптимистичные обновления нельзя делать для счётчиков
- Нужно было задать retry: 3 для мутации
