В первом случае это означает, что когда у меня есть 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 к ЛЮБОМ подключенному компоненту, он не будет охватыватьвсе случаи?
Это обеспечит ненужные обновления событий маршрутизатора для компонентов, которые, возможно, не нуждаются в них, поскольку они не используют реквизиты маршрута.