如何以我的反应状态访问此信息?

时间:2019-03-21 11:25:53

标签: reactjs state

我现在还很陌生,现在我已经在状态下获取了此信息(如图所示),如何访问状态为"Please enter the valid credential"的消息?

我已经尝试过this.state.errors.messagethis.state.errors[0].message, 但似乎两者都不对,有人可以告诉我如何访问邮件吗?非常感谢。

Image to see the Error Object

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

克里斯,您好,非常感谢您的回答。

您是对的,该错误对象是从API返回的,我已将其添加到状态中。

我也尝试过

this.setState({errors:errorObjFromAPi},console.log(errors));

状态和设置正确,错误也可以在控制台中打印。

但是,当我尝试在react组件中呈现消息时,我使用了类似 一些html…{this.state.errors [0] .message}, 然后我收到一个错误消息,说“无法读取属性错误[0]。消息”...。

我有点困惑,因为错误对象已经处于状态中,为什么我不能访问它并将其呈现在组件中?

这些信息足以让您找出原因吗?如果没有,我将提供更具体的代码。再次非常感谢。

1 个答案:

答案 0 :(得分:0)

没有更多的代码,很难提供帮助。 您是否实际上已将此添加到状态?还是刚刚从API返回了该对象。

如果您刚刚做完......

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

然后很可能在console.log调用之前,由于它是异步的,所以“设置状态”还没有完成。

相反,无论您在哪里收到错误对象,都请尝试...

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

值得注意的是,设置状态接受的回调可以在设置状态完成后调用。

例如

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