如何使用React Router参数更新子组件中的状态?

时间:2019-05-25 19:01:13

标签: reactjs react-router

我正在尝试基于链接更新我的状态。它取决于通过路由向下传递的param.ID。

  

问题是我不确定如何将该信息获取到父组件。

状态有一个对象数组。单击链接将更改对象的属性之一。但是我需要知道单击了哪个链接才能知道如何更新状态。理想情况下,我将在父组件中具有以下功能:

updateState() { 
    this.setState({
        data: ????
})

但是我不确定在不事先知道参数的情况下如何设置数据。如果我将事件处理程序传递给链接中的onClick函数,我只会得到html。

我尝试将子组件更改为类组件,然后从那里更新状态,但这不起作用。即使在componentDidMount中。我收到一个严重错误,说我要多次更新状态,这将导致无限循环。

1 个答案:

答案 0 :(得分:0)

比较组件中以前的先前道具确实更新为当前道具。

componentDidUpdate(prevProps) {
     if(prevProps.value !== this.props.value){
         this.setState({value: this.props.value)}
}

未经测试...但这是要点。