对象显示在控制台中,但始终在开始时添加一个未定义或空数组



我试图在对象上执行一些逻辑。当我将对象打印到控制台console.log(question);时,我会看到对象如下:

[15:23:06] undefined
[15:23:06] Object {
[15:23:06]   "id": "213a3e34-1a86-4ae5-bd7c-c882fd1684f8",
[15:23:06]   "text": "What is 4+4",
[15:23:06] }

但是,我实际上参考了这些值很难。当我尝试question['text']时,我会得到类型错误:

未定义不是对象(评估'问题[" text"]')

我看到,在控制台上有一个未定义的记录,但不明白那里的来源。

注意,我的对象是从一系列对象中拉出的:

question = this.state.questions[1];

从国家提出问题的地方。

当我将this.state.questions登录到控制台时,我看不到任何未定义的东西,而是,我看到一个空数组在顶部添加了一个空数组:

[15:22:11] Array []
[15:22:11] Array [
[15:22:11]   Object {
[15:22:11]     "id": "407e7560-a0cd-4272-bafc-795f5e5787be",
[15:22:11]     "text": "What is 2+4",
[15:22:11]   },
[15:22:11]   Object {
[15:22:11]     "id": "213a3e34-1a86-4ae5-bd7c-c882fd1684f8",
[15:22:11]     "text": "What is 4+4",
[15:22:11]   },
[15:22:11]   Object {
[15:22:11]     "id": "9d38c759-6b64-4c1f-9e0e-d3b95a72b3a8",
[15:22:11]     "text": "What is 1+2",
[15:22:11]   },
[15:22:11] ]

这使我相信

从所给出的信息中,在数据实际在州内之前可以访问该属性。尝试访问" this.state.questions [1]",如果以前未加载数据(即使" this.state.questions"是一个空数组),将给出不确定的。

要避免这种情况,请确保使用此值的任何功能都应:将异步函数链接到获取数据的任何功能上,或使用条件来确保该值不确定。例如:

if(typeof this.state.questions[1] !== "undefined") {
 //do something
}

相关内容

  • 没有找到相关文章

最新更新