0

我正在尝试将 - 从父组件传递到子组件 - 一些数据作为道具,我想将此道具设置为初始状态

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 中检查它时,我可以看到道具值,但状态仍然存在""

我也试过用getDerivedStateFromPropsin对其进行排序componentDidMount,我可以用它来设置它,但是它不允许我稍后改变状态......为什么?!有什么问题?

4

2 回答 2

0

确保将 props 分配给 state 时,它​​们的值是预期的。

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

最有可能的问题是 props 的值在分配给状态时为空。

于 2018-11-07T07:55:43.543 回答
0

利用

props.name

代替

this.props.name
于 2018-11-09T16:31:53.210 回答