2017-02-13 64 views
0

我试图起床与加速反应,终极版。我目前有这样的设置:阵营,路由器重新加载组件时,导航远离它

商店的状态有一个'activeAction'属性,需要一个数字。 页面组件使用'activeAction'来确定应该在应用程序的中心显示哪个组件,并根据当前URL进行更改。例如,'/ Home'为activeAction:0,'/ About'为activeAction:1

/Home的组件被称为BlogRoll,并且此组件具有实际逻辑以显示来自博客api调用的帖子。我正在调用该操作来显示组件componentDidMount函数中的帖子。/About的组件只有一个渲染功能,表示“内容区域”......现在只是一个占位符。

我的导航设置为链接部分组成:

<div className="NavItem"> 
    <Link to={'/Home'} activeClassName="ActiveMenuItem">Home</Link> 
</div> 
<div className="NavItem"> 
    <Link to={'/About'} activeClassName="ActiveMenuItem">About</Link> 
</div> 

我是点击后Home Link(工作正常),然后单击About Link,在网志串连compenent是越来越才去重新加载时遇到的问题关于组件。我知道这是通过在BlogRoll.componentDidMount()中设置一个断点。我点击去About,但在此之前它会重新加载BlogRoll。

这是故意的行为吗?它似乎不应该这样做,但我仍然在学习,可能还没有完全理解组件生命周期。

感谢您的帮助!

回答

0

这是一个有意的行为。

React-router如果组件未呈现,组件将被卸载。

你可以阅读更多有关react-router repo组件的生命周期。

如果您想在组件中使用持久状态,则可以使用Redux存储。

+0

是否卸载触发componentDidMount()?我想避免重新安装当时不需要的组件。导航到/ About应该卸载BlogRoll,然后挂载关于。 – nclayton

+0

编号'componentDidMount()'应当在关于后返回到BlogRoll时触发。需要查看代码才能了解发生了什么 –