Я использую react-router-redux для навигации и имею вложенные компоненты connect()
ed. Кажется, это работает нормально, за исключением того, что мои вложенные компоненты не перерисовываются при изменении маршрута реактивного маршрутизатора.
В частности, в приведенной ниже структуре App
и Sidebar
являются компонентами connect()
ed, и им обоим требуется информация от state
. Когда я нажимаю Link
в Sidebar
:
- действие
@@router/LOCATION_CHANGE
срабатывает, - У меня есть
routerReducer
реакции-маршрутизатора-редукса, объединенного с моим состоянием, поэтому состояние обновляется, - Приложение перерисовывается, и отображается новый маршрут,
- но боковая панель не перерисовывается, поэтому «активный»
Link
не обновляется, аactiveClass
никогда не изменяется.
Что здесь может быть не так?
Маршрутизатор
<Router component={App}>
<Route path="foo" component={Foo}/>
<Route path="bar" component={Bar}/>
<Route path="baz" component={Baz}/>
</Router>
Приложение
<div>
<Sidebar/>
<div>
{children}
</div>
</div>
Боковая панель
<nav>
<Link to="/foo" activeClass="active">Foo</Link>
<Link to="/bar" activeClass="active">Bar</Link>
<Link to="/baz" activeClass="active">Baz</Link>
</nav>
<Sidebar time={Date.now()}/>
). Тот факт, что он каждый раз разный, кажется, вызывает повторный рендеринг, но на самом деле это не исправляет. - person nicholas   schedule 09.12.2016