Как остановить поток Redux при отправке действия

Поэтому для каждого отправленного действия в redux будет вызываться рендеринг каждого компонента, и эти компоненты сравниваются с ранее отображаемым компонентом. Любые различия идентифицируются и обновляются.

У меня вопрос, есть ли способ остановить вызов обновления (рендеринга) ненужных компонентов?

Пример Компонента A - это диспетчерское действие, которое влияет на Компонент B и не влияет на Компонент C. В этом случае всякий раз, когда отправляется действие, вызывается каждый метод рендеринга каждого компонента. Как остановить вызов метода рендеринга Компонента C здесь?

Всего 1 ответ


Если выбранная вами часть магазина (в mapStateToProps ) не изменилась (с помощью поверхностного сравнения === ), то ваш компонент не будет перерисован.

Это подробно описано в документации

React Redux внутренне реализует метод shouldComponentUpdate, так что компонент-оболочка выполняет рендеринг точно при изменении данных, необходимых вашему компоненту. По умолчанию React Redux решает, отличается ли содержимое объекта, возвращаемого из mapStateToProps, с помощью сравнения === (проверка "неглубокого равенства") для каждого поля возвращаемого объекта. Если какое-либо из полей изменилось, ваш компонент будет перерисован, чтобы он мог получать обновленные значения в качестве реквизита.

Обратите внимание, что возвращение мутированного объекта с той же ссылкой является распространенной ошибкой, которая может привести к тому, что ваш компонент не выполнит повторную визуализацию, как ожидается.


Есть идеи?

10000