React Props не обновляет состояние

#reactjs #state

#reactjs #состояние

Вопрос:

Что не так с приведенным ниже кодом в react? Я вижу, что реквизиты отображаются с задержкой (на основе console.log), но кроме этого я не вижу, в чем здесь проблема.

   state = {
    data: {
      firstName: "",
      lastName: "",
      email: "",
    },
    errors: {},
  };

  componentDidMount() {
    const { firstName, lastName, email } = this.props.user;
    var changeData = { ...this.state.data };
    changeData.firstName = firstName || "";
    changeData.lastName = lastName || "";
    changeData.email = email || "";
    if (firstName) {
      console.log(changeData);
      this.setState({ data: { changeData } });
    }
  }
  

Я не вижу, чтобы данные изменялись в состоянии….

Ответ №1:

changeData это уже объект, который не нужно переносить с {} изменением вашего кода, как показано ниже

this.setState({ data: changeData });

Комментарии:

1. Спасибо, да, вы правы, хотя есть и другие проблемы, которые я не вижу. по какой-то причине он не читается в the this.props.user . Я передал это в эту форму, хотя `<AboutMe user={this.state.user} />` в родительском компоненте, где this.state.user записывается на консоль как реальные данные, хотя я не думаю, что они передаются дочернему элементу, мне кажется, что только через некоторое время.

2. Я предложу создать для этого еще одну проблему или добавить больше деталей к вашему вопросу, иначе трудно предложить вам правильный ответ. И если мой ответ был вам полезен, примите ответ и проголосуйте, спасибо.