#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. Я предложу создать для этого еще одну проблему или добавить больше деталей к вашему вопросу, иначе трудно предложить вам правильный ответ. И если мой ответ был вам полезен, примите ответ и проголосуйте, спасибо.