我已经定义了这些路由
<Switch>
<Route path='/1' render={() => <ComponentA />} />
<Route path='/2' render={() => <ComponentA />} />
<Route path='/3' render={() => <ComponentA />} />
</Switch>当我点击/1页面上的应用程序时,ComponentA的渲染效果很好。但是当我导航到/2时,ComponentA没有重新挂载,但render函数确实触发了。
如果我使用不同的组件,它将被正确地安装
ComponentA根据属性更改呈现内容,并在componentDidMount中触发检索数据的操作
这是预期的行为吗?看起来我们不应该为不同的路由重用组件
发布于 2018-04-12 13:04:12
只需在你的渲染组件上添加一个唯一的键--这就为我修复了它。
<Switch>
<Route path='/1' render={() => <ComponentA key={1} />} />
<Route path='/2' render={() => <ComponentA key={2} />} />
<Route path='/3' render={() => <ComponentA key={3} />} />
</Switch>https://stackoverflow.com/questions/49567416
复制相似问题