无法从父级到子级的React中的props设置状态

时间:2018-11-07 00:27:13

标签: reactjs setstate getderivedstatefromprops

我正尝试将某些数据(从父级元素传递到子级元素)作为道具,并且我想将此道具设置为初始状态

class EditContact extends Component {
  constructor(props) {
    super(props);
    this.state = {
      name: this.props.name,
      phone_number: this.props.phone_number,
      address: this.props.address
    };
    this.handleInputChange = this.handleInputChange.bind(this);
  }
  ...
}

我没有收到任何错误消息,但是如果我console.log this.state.name我什么也没收到。或在chrome-s react add-on中检查它时,我可以看到道具值,但状态仍然为""

我还尝试过在getDerivedStateFromProps中用componentDidMount对其进行排序,可以对此进行设置,但随后它不允许我以后更改状态。 ..为什么?!有什么问题吗?

2 个答案:

答案 0 :(得分:0)

在将道具分配给州时,请确保道具的值是预期值。

super(props);
debugger; // This will act as a break point in chrome

最有可能出现的问题是,在将道具分配给国家时,道具的值已为空。

答案 1 :(得分:0)

使用

props.name

代替

this.props.name