路线更改的调度操作

时间:2017-03-30 06:03:13

标签: reactjs react-router react-redux

我有一个智能User组件,用于呈现Redux州的用户信息。

这是我定义的路线:

<Route path="/users/:id" component={User}/>

每当我点击特定用户时,路由更改并强制组件更新。但是,当路由更改时,我希望发送Redux操作,以便从外部API通过:id获取用户详细信息。

更改User路径后,为Route组件获取新数据集的正确方法是什么?

我尝试在Redux上发送componentWillReceiveProps()操作,但这会导致无限循环,因为操作导致组件再次更新...重复。

1 个答案:

答案 0 :(得分:2)

您可以在componentWillReceiveProps中执行此操作,但在那里您可以为present和nextProps提供条件,例如

componentWillReceiveProps(nextProps) {

    if(this.props.params.id !== nextProps.params.id) {
        //...action here 
    }
}