Подтвердить что ты не робот

Зачем использовать "this.props.dispatch", а не "store.dispatch" непосредственно в Redux?

Есть ли вред для непосредственного использования store.dispatch?

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

Спасибо!

4b9b3361

Ответ 1

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

Вот почему мы никогда не поощряем хранилище singleton в документах и ​​всегда рекомендуем вам использовать <Provider>, чтобы передать его по иерархии через React context. Это делает магазин доступным для компонентов-потребителей, не делая его односторонним.

Что касается того, почему connect() из React Redux передает dispatch в качестве пропеллера вместо самого store - это потому, t действительно нужно store себя в подключенных компонентах. Состояние подписки и чтения выполняется с помощью connect(), поэтому вам понадобятся только dispatch() в компонентах.

Ответ 2

Обычно я обнаруживаю, что хранилище инициализировано в модуле верхнего уровня, а затем используется в модулях более низкого уровня с помощью функции react-redux connect.

Это предотвращает необходимость импорта хранилища непосредственно в модуль нижнего уровня, поскольку он будет импортировать с верхнего уровня.