Должны ли все редукционные действия иметь соответствующий редуктор? - PullRequest
0 голосов
/ 25 февраля 2020

Я думаю, что Redux довольно полезен для отладки, потому что он отслеживает, какие действия были отправлены вашим приложением в его инструментах разработки. Это плохая практика для отправки действия без намерения обрабатывать его с помощью редуктора?

Например, я хочу сделать AJAX вызов и обновить состояние локального компонента реакции на основе ответа, но все же хочу записать этот вызов в средствах разработки для целей отладки. Я хотел бы создать создателя действия, подключить его к своему компоненту с помощью свойства response-redux mapDispatchToProps в оболочке подключения response-redux, но в моей функции редуктора никогда не бывает регистра, который обрабатывает это действие.

1 Ответ

1 голос
/ 25 февраля 2020

Не обязательно. Типичным примером является запуск действия, которое промежуточное программное обеспечение перехватывает, интерпретирует и на основе содержимого действия может запускать или не запускать одно или несколько последующих действий, а также может даже проглотить исходное действие, которое вы выполнили (т.е. не пересылать его дальше в цепь, так что на самом деле она никогда не достигает каких-либо редукторов).

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

Этот шаблон можно увидеть, например, в redux-promise-middleware

Вариант использования, который вы здесь описываете, хотя, используя действие исключительно для целей регистрации, я бы посоветовал против , Это не самая плохая вещь в мире, но на самом деле действие Redux должно сделать что-то - использовать его только для регистрации того, что что-то произошло, вероятно, неправильно, и чрезмерно запутанно (представьте, кто-то поддерживает этот код, тратя Некоторое время пытаясь выяснить, что это действие что-то делает, тогда, если факт, что ничего не делает , является ошибкой или преднамеренным, et c). Просто использовать console.log намного проще и понятнее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...