#reactjs
#reactjs
Вопрос:
Я получаю сообщение об ошибке, если я использую приведенный ниже код.
componentWillReceiveProps(nextProps) {
if (nextProps.uploadImage.message === 'File uploaded') {
this.setState({ photostatus: 'image' });
}
else {
this.setState({ photostatus: 'input' });
}
}
Но я не получаю ошибку, если использую приведенный ниже код
componentWillReceiveProps(nextProps) {
if (nextProps.uploadImage) {
this.setState({ photostatus: 'image' });
}
else {
this.setState({ photostatus: 'input' });
}
}
Моя ошибка выглядит следующим образом
Комментарии:
1. Разве 2-й фрагмент с проверкой в любом случае не лучше? Может быть обновление другого реквизита, которое не включает
uploadImage
свойство, следовательно, ошибка, которую вы получаете.2. Второй фрагмент следует использовать, если вы не хотите проверять конкретное сообщение «Загруженный файл».
Ответ №1:
Вы получаете ошибку, потому что пытаетесь найти значение message
свойства undefined
.
Вы должны изменить свое условие if примерно так,
componentWillReceiveProps(nextProps) {
if (nextProps.uploadImage amp;amp; (nextProps.uploadImage.message === 'File uploaded')) {
this.setState({ photostatus: 'image' });
}
else {
this.setState({ photostatus: 'input' });
}
}