在react componentDidUpdate中没有更新状态

问题描述 投票:0回答:1

我需要使用进入我的组件的道具更新我的状态(start_date),但setState没有更新我的状态。相反,我得到了undefined的值。

这是我在代码中所做的事情:

constructor(props) {
  super(props);
  this.state = {
    start_date: ''
  };
}

componentDidUpdate(prevProps, prevState) {
  console.log("prevProps ", prevProps)
  console.log("prevState ", prevState)
  if (prevProps.currentRelease != prevState.currentRelease) {
     console.log("Inside componentDidUpdate ")
     this.setState({
    //  start_date: prevProps.currentRelease.start
    });
  }
}

这是我的数据的屏幕截图,它来自父组件,将其传递给子组件:

data

我需要用currentRelease.start(红色框)更新start_date状态

javascript reactjs
1个回答
1
投票

我推荐这个。而不是componentDidupdate

static getDerivedStateFromProps(props, state) {
    const { currentRelease } = props;

    if(currentRelease && currentRelease.start) {
        return { start_date: props.currentRelease.start }
    }

    return null;
}

参考:https://reactjs.org/docs/react-component.html#updating

© www.soinside.com 2019 - 2024. All rights reserved.