Обратный вызов в Redux/Redux-Saga является анти-шаблоном?

#reactjs #redux #react-redux #redux-saga

Вопрос:

Давайте разберемся, пользователь выполняет отправку логина, поэтому приложение вместо кнопки отправки показывает счетчик, автономное состояние, которое помогает нам (загружается).

Хорошо, когда приложение отправляет действие входа в систему saga, мы можем передать обратный вызов для установки ложного состояния загрузки при успешном или неудачном входе в систему.

Некоторые эксперты скажут, что управлять состоянием загрузки в редукторах, но переносить на все состояние загрузки всего приложения, для какого-то конкретного действия не очень хорошо.

Ответ №1:

Проблема с обратными вызовами заключается в том, что архитектура не гарантирует, что обратный вызов будет вызван или что он не будет вызываться несколько раз. Это связано с тем, что действия redux являются важными событиями, где каждое событие может обрабатываться 0-n обработчиками (или сагами в нашем случае).

Конечно, на момент написания вы знаете, что этот конкретный код обрабатывается ровно один раз, но для кого-то еще это может быть трудно понять, если в проекте нет строгих правил, как с этим справиться.

В то же время вы правы, что помещать локальное состояние в хранилище redux не очень хорошо. Обычно я справляюсь с этим, перемещая логику данных в ее собственную структуру. Таким образом, например, загрузка коллекций элементов с сервера больше не является локальным состоянием какого-либо компонента, а скорее глобальным состоянием данных, которые могут использоваться и повторно использоваться несколькими частями приложений. Это также облегчит использование пользовательской логики кэширования для всего приложения и т. Д. Однако некоторое состояние локального компонента в redux по-прежнему неизбежно для некоторых конкретных внутренних вызовов.

С точки зрения будущего, я увидел какие-то потуги на useSaga крюк, которая будет работать на местных useReducer крюк, и, следовательно, локальное состояние, однако реализация такой логики ограничена, так как ток реагировать крюк АПИ не хватает определенных функций , которые необходимы, чтобы убедиться, что это хорошо работает с React фаза фиксации, визуализации поручительства, редуктор повторы и т. д.

Комментарии:

1. Привет, Мартин, твой ответ ясен и заставь меня лучше подумать об управлении штатами. Большое спасибо!