У меня есть два компонента React, сделанные таким образом.Несколько вызовов ReactDOM.render с общим контекстом маршрутизатора
ReactDOM.render(
<Router history={ browserHistory }>
<Route path='/items' component={ App }>
<IndexRoute component={ Home } />
<Route path='/items/:id' component={ Details } />
</Route>
</Router>,
document.getElementById('app')
);
И второе, что является боковой панелью.
ReactDOM.render(
<Sidebar />,
document.getElementById('sidebar')
);
Я хотел бы использовать Link помощник от среагировать-маршрутизатора в боковой панели компонента. Однако я получаю следующую ошибку: «Неоткрытое инвариантное нарушение: ссылки, отображаемые вне контекста маршрутизатора, не могут перемещаться». Это имеет смысл, потому что боковая панель не находится в контексте маршрутизатора, как показано выше.
Есть ли способ разделить контекст маршрутизатора с боковой панелью?
Я хотел бы изменить компоновку боковой панели на основе маршрута (и получить доступ к объекту роутера в этом .props должным образом) и использовать Ссылка, как и должно быть.
Я не хочу работать с хакерскими подходами, такими как history.pushState или parsing location.path, чтобы изменить макет боковой панели в соответствии с соответствующим маршрутом элементов.
Почему так выглядит ''? Вероятно, это должно быть в вашем компоненте ''. Это сделает вещи намного более простыми. –
Я знаю, но текущая структура проекта не позволяет мне использовать один корневой компонент и позволить React обрабатывать весь сайт. Это было бы намного проще, поскольку '' является частью контекста маршрутизатора. Со временем, когда большее количество сайта/приложения получит (пере) в React, мы приблизимся к общему корневому элементу. К сожалению, сегодня это еще не так. –