我们的应用程序具有此结构(这些结构包装在某些父组件中):
<Announcement />
<Content />
现在在我的<Content />
组件的componentDidMount()
中,我有一个条件来决定是否要分派显示<Announcement />
的操作,如下所示:
componentDidMount() {
if(loggedIn) {
this.props.showAnnouncement();
}
}
showAnnouncement()
正在从redux存储映射为props。到目前为止,一切都很好。
但是,在我的<Content />
组件中,还是一个子模式框组件,当单击按钮时,它会通过路由器显示。假设我在www.website.com/somePath
中。当我单击按钮时,路线将更改为www.website.com/somePath/modalLabel
,并且模式叠加层将显示在页面上方。
现在的问题是,我单击触发模式的按钮后,<Announcement />
组件消失了。
我怀疑这是因为路线更改了(即使是子路线)。
然后我应该在另一种生命周期方法上执行this.props.showAnnouncement();
吗?我不确定发生了什么。