Невозможно установить состояние из реквизита в React от родителя к потомку - PullRequest
0 голосов
/ 07 ноября 2018

Я пытаюсь передать от родителя к дочернему компоненту некоторые данные в качестве реквизита, и Я бы хотел установить этот реквизит в начальное состояние .

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 , я вижу значения реквизита , но состояние остается "".

Я также пытался отсортировать его с помощью getDerivedStateFromProps в componentDidMount, я могу установить его с этим, но тогда это не позволяет мне изменить состояние позже на ... Почему ?! Что может быть не так?

Ответы [ 2 ]

0 голосов
/ 09 ноября 2018

Использование

props.name

вместо

this.props.name
0 голосов
/ 07 ноября 2018

Убедитесь, что значение реквизита является ожидаемым, когда вы присваиваете его состоянию.

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

Скорее всего, проблема в том, что значение реквизита является пустым к тому времени, когда он назначен состоянию.

...