Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用不可变的shouldComponentUpdate响应路由器重新提交_Javascript_Reactjs_Immutability_React Router - Fatal编程技术网

Javascript 使用不可变的shouldComponentUpdate响应路由器重新提交

Javascript 使用不可变的shouldComponentUpdate响应路由器重新提交,javascript,reactjs,immutability,react-router,Javascript,Reactjs,Immutability,React Router,当我切换到另一个路由,然后返回到我的组件时,我在重新查找组件时遇到问题。 我使用的是React 0.14.3、React router 1.0.2和Immutable.js 原因是,我比较了shouldComponentUpdate方法中的道具 shouldComponentUpdate(nextProps, nextState) { return !Immutable.is(nextProps.articles, this.props.articles); } 如果我改变路线并返回,

当我切换到另一个路由,然后返回到我的组件时,我在重新查找组件时遇到问题。 我使用的是React 0.14.3、React router 1.0.2和Immutable.js

原因是,我比较了
shouldComponentUpdate
方法中的道具

shouldComponentUpdate(nextProps, nextState) {
    return !Immutable.is(nextProps.articles, this.props.articles);
}
如果我改变路线并返回,
props.articles
不会改变,但我需要重新阅读页面

问题是,在我的<代码> BooDeCuffTebug Up/<代码>方法中,我需要考虑什么,跟踪,如果路由刚刚更改?< /P> 提前谢谢!
Rico你没试过吗?我怀疑您不需要关心这一点,因为当您更改路由时,您的组件将被重新安装。我的组件正在显示一个数据表。这些数据来自API,并存储在“文章”中。通向该组件的路径是/articles。当我切换路由/然后切换回/articles时,组件不会更新,因为项目与以前相同。如果我注释掉我的shouldComponentUpdate,它就可以工作了。TL;DR-我试过了,但没用。好吧,当你回到/文章时,你的shouldComponentUpdate甚至不应该被调用。因为它不是更新,而是装载,所以调用componentDidMount。例如,这里有一些人试图解决相反的问题——换句话说,您试图实现的是react路由器的默认行为。