Почему мои подключенные компоненты выполняли повторный рендеринг, даже когда mapStateToProps возвращал идентичные (===) реквизиты? - PullRequest
0 голосов
/ 28 января 2019

Я пробовал реагировать с избыточностью 6.0.0, и мои подключенные компоненты выполняли повторную визуализацию, даже когда mapStateToProps возвращал идентичные (===) реквизиты.Это ошибка?

Подтверждено, что это относится к v6.Откат до 5.1.1, и эти повторные рендеринг не происходят.


Видео демонстрация: YouTube

Источник: github

1 Ответ

0 голосов
/ 28 января 2019

Похоже, вы неверно истолковываете, какими бы ни были эти мигающие контуры.

Я добавил лог-оператор к Card.js, загрузил страницу и щелкнул по каждой из трех карточек.Я получил такой вывод:

App.js:20 <App /> render
12:54:17.198 List.js:9 cardIDs: (3) [64, 1512, 900]
12:54:17.203 Card.js:5 Card rendering: Card One
12:54:17.209 Card.js:5 Card rendering: Card Two
12:54:17.210 Card.js:5 Card rendering: Card Three
12:54:17.211 Deck.js:8 deckCardsIDs: []
12:54:23.108 Deck.js:8 deckCardsIDs: [64]
12:54:23.109 Card.js:5 Card rendering: Card One
12:54:23.780 Deck.js:8 deckCardsIDs: (2) [64, 900]
12:54:23.782 Card.js:5 Card rendering: Card Three
12:54:24.460 Deck.js:8 deckCardsIDs: (3) [64, 900, 1512]
12:54:24.462 Card.js:5 Card rendering: Card Two

Это указывает на то, что все три экземпляра <Card> отображаются при запуске, а затем только новые добавленные экземпляры компонента отображаются при каждом щелчке.

Кроме того,Я использовал React DevTools Profiler для захвата шаблона обновления по щелчкам, который выглядел следующим образом:

enter image description here

Вы можете видеть, что только паракомпоненты фактически обновлены.

v6 имеет внутреннюю реализацию, отличную от v5 , но в целом должна иметь такое же общее поведение.

...