#reactjs #redux #react-redux #redux-saga
Вопрос:
Давайте разберемся, пользователь выполняет отправку логина, поэтому приложение вместо кнопки отправки показывает счетчик, автономное состояние, которое помогает нам (загружается).
Хорошо, когда приложение отправляет действие входа в систему saga, мы можем передать обратный вызов для установки ложного состояния загрузки при успешном или неудачном входе в систему.
Некоторые эксперты скажут, что управлять состоянием загрузки в редукторах, но переносить на все состояние загрузки всего приложения, для какого-то конкретного действия не очень хорошо.
Ответ №1:
Проблема с обратными вызовами заключается в том, что архитектура не гарантирует, что обратный вызов будет вызван или что он не будет вызываться несколько раз. Это связано с тем, что действия redux являются важными событиями, где каждое событие может обрабатываться 0-n обработчиками (или сагами в нашем случае).
Конечно, на момент написания вы знаете, что этот конкретный код обрабатывается ровно один раз, но для кого-то еще это может быть трудно понять, если в проекте нет строгих правил, как с этим справиться.
В то же время вы правы, что помещать локальное состояние в хранилище redux не очень хорошо. Обычно я справляюсь с этим, перемещая логику данных в ее собственную структуру. Таким образом, например, загрузка коллекций элементов с сервера больше не является локальным состоянием какого-либо компонента, а скорее глобальным состоянием данных, которые могут использоваться и повторно использоваться несколькими частями приложений. Это также облегчит использование пользовательской логики кэширования для всего приложения и т. Д. Однако некоторое состояние локального компонента в redux по-прежнему неизбежно для некоторых конкретных внутренних вызовов.
С точки зрения будущего, я увидел какие-то потуги на useSaga
крюк, которая будет работать на местных useReducer
крюк, и, следовательно, локальное состояние, однако реализация такой логики ограничена, так как ток реагировать крюк АПИ не хватает определенных функций , которые необходимы, чтобы убедиться, что это хорошо работает с React фаза фиксации, визуализации поручительства, редуктор повторы и т. д.
Комментарии:
1. Привет, Мартин, твой ответ ясен и заставь меня лучше подумать об управлении штатами. Большое спасибо!