Как я могу получить доступ к этой информации в моем состоянии реакции?

#reactjs #state

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

Вопрос:

Я довольно новичок в react, теперь у меня есть эта информация в моем состоянии (показано на рисунке), как я могу получить доступ к сообщению: "Please enter the valid credential" в состоянии?

Я пробовал this.state.errors.message и this.state.errors[0].message , но, похоже, оба неверны, может кто-нибудь сказать мне, как получить доступ к сообщению? Очень признателен.

Изображение, чтобы увидеть объект ошибки

////////////////////////////////////////////

Привет, Крис, большое спасибо за твой ответ.

Вы правы в том, что объект error возвращается из API, и я добавил это в состояние.

Я также пытался

this.setState({ошибки: errorObjFromAPi}, console.log(ошибки));

состояние и должно быть установлено правильно, а ошибки также могут быть выведены в консоль.

Однако, когда я попытался отобразить сообщение в компоненте react, я использовал что-то вроде html … {this.state.errors[0].message} , затем я получил сообщение об ошибке ‘не удается прочитать свойство errors [0].message’ ….

Я немного сбит с толку, поскольку объект error уже находится в состоянии, почему я не могу получить к нему доступ и отобразить его в компоненте?

Достаточно ли этой информации для вас, чтобы выяснить причину? Если нет, я предоставлю более конкретные коды. Опять же, очень признателен.

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

1. Добро пожаловать в Stack Overflow postUp17! Пожалуйста, укажите свои данные в текстовом формате непосредственно в вопросе вместо ссылки на внешние изображения. this.state.errors[0].message правильно.

Ответ №1:

Без дополнительного кода трудно помочь. Вы действительно добавили это в состояние? Или этот объект только что был возвращен из API.

Если вы только что закончили….

 this.setState({errors: errors});
console.log(this.state.errors[0].message);
  

Тогда, скорее всего, ‘set state’ не завершилось перед консолью.регистрируйте вызов, поскольку он асинхронный.

Вместо этого, где бы вы ни получили объект errors, попробуйте…

 console.log(errors[0].message);
  

Также стоит отметить, что set state принимает обратный вызов, который может быть вызван после завершения set state.

Например.

 this.setState({errors: errorObjFromAPi}, console.log(errors));  // do a console.log straight after set state has finished.
  

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

1. Привет, Крис, большое спасибо за твой ответ, я обновил дополнительную информацию в вопросе, можешь ли ты помочь мне решить проблему дальше? Очень признателен

2. Теперь нам нужно просмотреть часть кода, который вы используете. В частности, компонент, в котором вы пытаетесь отобразить значение.