我希望每次单击标题中的链接时都重新渲染组件。因此,我使用了route
中的组件道具来重新渲染我的组件。
<Route
exact
path="/assets"
component={props => (<AssetsView {...props} />)}
/>
在文档中指出
这将导致现有组件的卸载和新的 组件安装,而不仅仅是更新现有组件。
但是,当我单击链接时,将首先调用构造函数,然后是componentWillMount,而最后调用的是componentWillUnmount。
我有2个组件的Edit和Table视图,我使用react-router-dom在这两个组件之间导航。当我在Edit组件中时,我想根据Table组件安装之前的条件在unmount上更改redux状态,并在Table组件的初始状态(使用Constructor)中使用更改后的redux状态。如何实现?
示例程序-https://codesandbox.io/s/kmy387l59o
有人遇到这个问题吗?
答案 0 :(得分:1)
从React16开始,componentWillUnmount是异步的,这就是为什么在下一个组件componentWillMount之后调用它的原因。有关更多详细信息,请查看讨论here.
在React 15中,ComponentWillUnmount在呈现 DOM中的下一个组件。在当前版本(v16)中, 在安装下一个组件之后,调用了ComponentWillUnmount。