【问题标题】:How can I access this information in my react state?如何在我的反应状态下访问这些信息?
【发布时间】:2019-08-12 05:55:43
【问题描述】:

我对反应很陌生,现在我的状态中有此信息(如图所示),我如何访问该状态中的消息:"Please enter the valid credential"

我试过this.state.errors.messagethis.state.errors[0].message, 但似乎两者都不正确,有人可以告诉我如何访问该消息吗?非常感谢。

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

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

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

我也试过了

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

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

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

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

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

【问题讨论】:

  • 欢迎来到 Stack Overflow postUp17!请将您的数据以文本格式直接包含在问题中,而不是链接到外部图像。 this.state.errors[0].message 是正确的。

标签: reactjs state


【解决方案1】:

没有更多代码,很难提供帮助。 你真的把这个添加到状态了吗?或者这个对象刚刚从 API 返回。

如果你刚刚完成......

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

那么很可能'set state'在console.log调用之前还没有完成,因为它是异步的。

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

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.

【讨论】:

  • 嗨,克里斯,非常感谢您的回答,我已经更新了问题中的更多信息,您能帮我进一步解决问题吗?非常感谢
  • 我们现在需要查看您正在使用的一些代码。具体来说,您尝试在其中呈现值的组件。
猜你喜欢
  • 1970-01-01
  • 2017-02-22
  • 1970-01-01
  • 1970-01-01
  • 2018-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-16
相关资源
最近更新 更多