Заблокированные обновления: реагируют на роутер и редукс - PullRequest
0 голосов
/ 23 октября 2018

Маршрутизатор Документы имеют некоторую информацию, когда использовать withRouter с избыточностью.Однако я нахожу их не совсем понятными.

Например, документы говорят, что используют withRouter, когда

  1. Компонент подключен к редуксу через connect () (Comp).
  2. Компонент не является «компонентом маршрута», то есть он не отображается так:

Некоторые вещи, которые мне не были понятны:

  • Прежде всего, 1 и 2 точки выше связаны с AND?Например, компонент не обновляется, когда 1-й и 2-й происходят?(или это ИЛИ?)
  • В первом случае это означает, что когда у меня есть connect(mapStateToProps)(Comp), нормально не использовать withRouter?
  • Второй пункт мне неясенполностью.Означает ли это, что мы должны применять withRouter к ЛЮБОМУ компоненту (connect -ed или нет?), Который не является «компонентом маршрута»?

Обновление: после некоторого исследование кажется, что это не должно быть проблемой в версии маршрутизатора 4.4.

1 Ответ

0 голосов
/ 23 октября 2018

В первом случае это означает, что когда у меня есть connect (mapStateToProps) (Comp), нормально не использовать withRouter?

connect()(Comp) обозначает, что это подключенный компонент,это не означает, что withRouter может быть ненужным с другими connect аргументами, такими как connect(mapStateToProps)(Comp). В документации это также упоминается:

// before
export default connect(mapStateToProps)(Something)

// after
import { withRouter } from 'react-router-dom'
export default withRouter(connect(mapStateToProps)(Something))

Означает ли это, что мы должны применять withRouter к ЛЮБОМУ компоненту (подключенному или нет?), Который не является компонентом маршрута"?

Мы должны применить withRouter к компоненту, если он не является компонентом маршрута, и мы ожидаем, что он будет обновлен при обновлении местоположения, т. Е. Он использует route props inкаким-то образом.Популярным примером является навигационное меню, в котором выделен активный элемент, это не компонент маршрута, но он должен знать о текущем маршруте.

Или почему бы не присоединить withRouter к ЛЮБОМ подключенному компоненту, он не будет охватыватьвсе случаи?

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

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