Как установить перехватчик для запуска действия в редуксе

У меня действительно большая форма, состоящая примерно из 50 компонентов, и я хочу вызвать редьюсер, который будет устанавливать флаг в значение true всякий раз, когда в форму вносятся какие-либо изменения, то есть всякий раз, когда запускается действие.

Я хочу, чтобы флаг позволял сказать hasFormChanged, изначально ложный. Всякий раз, когда для изменения формы вызывается одно действие, оно проверяет этот флаг и устанавливает для него значение true, если оно уже не истинно. Что-то вроде перехватчика для действий.

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

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
1
0
1 093
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

То, что вы ищете, это пользовательское промежуточное ПО Redux.
Это пример промежуточного программного обеспечения (по ссылке выше):

const logger = store => next => action => {
  console.group(action.type)
  console.info('dispatching', action)
  let result = next(action)
  console.info('next state', store.getState())
  console.groupEnd()
  return result
}

Вы можете вызвать store.dispatch() с помощью действия, чтобы установить нужный флаг.

Другие вопросы по теме