我有个提供不同组件的React Router。看起来像这样:
ReactDOM.render(
<Provider store={store}>
<Router>
<div>
<Route exact path="/" component={ListPage}/>
<Route path="/edit/:itemId" component={ItemPage}/>
</div>
</Router>
</Provider>,
document.getElementById('root')
);
所以-当我打开编辑页面时-组件渲染并在安装时获取该项目的数据。我将其设置为状态,以便组件呈现。
然后-我返回列表页面并打开另一个项目的编辑页面-当编辑页面再次装入时-它具有与以前相同的状态。
为什么会这样?路由器每次挂载时,编辑页是否都应该以默认状态重新启动?
(目前,我正在通过重置componentDidMount()
上的状态来解决此问题,但是对我来说,这看起来很丑陋。)
答案 0 :(得分:3)
这应该可以解决您的问题。
ReactDOM.render(
<Provider store={store}>
<Router>
<Switch>
<Route exact path="/" component={ListPage}/>
<Route path="/edit/:itemId" component={ItemPage}/>
</Switch>
</Router>
</Provider>,
document.getElementById('root')
);