0
我得到了兩個像這樣呈現的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')
);
我想用從反應路由器的鏈接幫手在側邊欄組件。但是,我收到以下錯誤:「未捕獲的不變違規:在路由器上下文之外呈現的鏈接無法導航。」這是有道理的,因爲側邊欄不在像上面第一次看到的路由器上下文中。
有沒有辦法與側邊欄共享路由器上下文?
我想根據路線更改側欄佈局(並正確訪問this.props中的路由器對象),並使用鏈接,因爲它應該是。
我不想按照history.pushState這樣的hacky方法工作,或者解析location.path來根據項目的相應路線更改側邊欄的佈局。
爲什麼''分開呈現?它應該在你的''組件中。這會讓事情變得更直接。 –
我知道,但目前的項目結構不允許我使用單個根組件,並讓React處理整個站點。這確實會更容易,因爲''是當時路由器環境的一部分。隨着時間的推移,當更多的網站/應用程序被重新寫入React時,我們會接近一個通用的根元素。不幸的是,今天還不是這樣。 –