Ven*_*SGS 3 reactjs react-router
对两条路由使用相同的组件时,如何在路由更改时重新安装组件?
这是我的代码。
路由.jsx
<Router history={browserHistory}>
<Route path="/" component={Home} />
<Route path="/foo/:fooId" component={Home} />
</Router>
Run Code Online (Sandbox Code Playgroud)
我有一个条件检查Home组件fooId,它相应地呈现 JSX。
<Link to="/foo/1234">fooKey</Link>
Run Code Online (Sandbox Code Playgroud)
目前,当单击fooKey路由时,Home 组件中的渲染功能会重新触发,但不会再次挂载。
我浏览了提到的其他答案componentWillReceiveProps,但我有很多配置 constructor ,我不想将所有这些配置移动到componentWillReceiveProps.
如果需要更多信息,请发表评论。
Lef*_*rik 10
如果您需要在每次路由匹配时强制重新安装组件,您可以通过key属性实现它,除非您知道自己在做什么:
<Route
exact
path={'some path'}
render={props => <RemountAlways key={Date.now()} {...props} />}
/>
Run Code Online (Sandbox Code Playgroud)
key={Date.now()} 这个关键属性将强制反应每次重新安装。
注意: componentWillReceiveProps在 react 中是个坏消息。
| 归档时间: |
|
| 查看次数: |
10535 次 |
| 最近记录: |