Javascript 对象显示在控制台中,但总是在开始时添加未定义或空数组

Javascript 对象显示在控制台中,但总是在开始时添加未定义或空数组,javascript,react-native,Javascript,React Native,我试图对一个对象执行一些逻辑。当我将对象打印到console.logquestion时;我看到的对象如下: [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] } 但是,我在实际引用这些值时遇到了问题。当我尝试提问['text']时,我得到一个类型错误:

我试图对一个对象执行一些逻辑。当我将对象打印到console.logquestion时;我看到的对象如下:

[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] }
但是,我在实际引用这些值时遇到了问题。当我尝试提问['text']时,我得到一个类型错误:

undefined不是评估“问题[文本]”的对象

我看到控制台上有一个未定义的日志,但无法理解它的来源

请注意,我的对象是从对象数组中提取的,如下所示:

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] ]

这让我相信,根据给定的信息,在数据实际进入状态之前,属性就被访问了。尝试访问此.state.questions[1]时,如果以前未加载数据,即使此.state.questions是空数组,也会给出未定义的结果

为了避免这种情况,请确保使用此值的任何函数都是:链接到获取数据的任何函数上的异步函数,或者使用条件来确保该值不是未定义的。例如:

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

需要查看有关控制台表达式的更多代码以及访问它的位置。请检查您在this.state.questions中使用的索引。你确定你在索引1中有你所指的对象吗?他说他可以控制台记录它。添加了更多的上下文。似乎有一个未定义的地方出现了,但无法理解这是从哪里来的,因为所有的都是在整个数组中定义的。@Perniferous,我可以确认你的建议是正确的。如果我加上一个短暂的延迟-工作完美。现在我只需要了解如何强制负载等待状态被填充