我正在使用React Router渲染多个级别(使用框架)。
我的Index.js具有:
ReactDOM.render(
<Router history={hist}>
<Switch>
<Route path="/admin" render={props => <AdminLayout {...props} />} />
然后,AdminLayout类将呈现导航栏,侧边栏和主内容面板。内容面板的显示方式为:
<Route
path={prop.layout + prop.path }
children={({ match }) => (
React.createElement(prop.component,{activeEnvironment:this.state.activeEnvironment})
)}
key={key}
/>
如果this.state.activeEnvironment值更改,我想强制重新加载内容窗格。我目前正在重新加载整个页面,该页面可以正常运行,但并不干净。理想情况下,应将边栏和导航栏保持在适当的位置,然后仅重新加载内容窗格。
有人对这样做的方法有任何建议吗?
谢谢你, 马特
编辑:子页面未更新通过状态。但是,出于应用程序逻辑/功能的原因,无论是否可行,都想强制重新加载子页面。再次谢谢你。.
答案 0 :(得分:0)
Marzelin在以下评论中的回答解决了该问题:
您可能会尝试在activeEnvironment更改时使Route的密钥无效,例如key = {key + this.state.activeEnvironment} – marzelin