我现在还很陌生,现在我已经在状态下获取了此信息(如图所示),如何访问状态为"Please enter the valid credential"
的消息?
我已经尝试过this.state.errors.message
和this.state.errors[0].message
,
但似乎两者都不对,有人可以告诉我如何访问邮件吗?非常感谢。
////////////////////////////////////////////
克里斯,您好,非常感谢您的回答。
您是对的,该错误对象是从API返回的,我已将其添加到状态中。
我也尝试过
this.setState({errors:errorObjFromAPi},console.log(errors));
状态和设置正确,错误也可以在控制台中打印。
但是,当我尝试在react组件中呈现消息时,我使用了类似 一些html…{this.state.errors [0] .message}, 然后我收到一个错误消息,说“无法读取属性错误[0]。消息”...。
我有点困惑,因为错误对象已经处于状态中,为什么我不能访问它并将其呈现在组件中?
这些信息足以让您找出原因吗?如果没有,我将提供更具体的代码。再次非常感谢。
答案 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.