Javascript 渲染时出错:";TypeError:无法读取属性';id';“未定义”的定义;

Javascript 渲染时出错:";TypeError:无法读取属性';id';“未定义”的定义;,javascript,vue.js,nuxt.js,Javascript,Vue.js,Nuxt.js,只有在尝试打印问题数组的第一个问题的id时,我才会出现此错误。(我正在获取值,控制台中也显示此错误) {{问题[0].id} 但当我尝试循环提问时,没有错误 <p v-for="i in questions" :key="i.id"> {{ i.id }} </p> {{i.id} 模板的脚本部分 导出默认值{ 数据(){ 返回{ 问题:[] } }, 安装的(){ axios.get(“/get_question

只有在尝试打印
问题
数组的第一个问题的
id
时,我才会出现此错误。(我正在获取值,控制台中也显示此错误)

{{问题[0].id}

但当我尝试循环提问时,没有错误

<p v-for="i in questions" :key="i.id">
   {{ i.id }}
</p>

{{i.id}

模板的脚本部分

导出默认值{
数据(){
返回{
问题:[]
}
},
安装的(){
axios.get(“/get_questions”)
。然后((res)=>{
this.questions=res.data
});
}
}

这会引发错误,因为即使在axios完成插值之前,您也会直接访问索引[0],因此会引发错误

这是不安全的,肯定会导致错误。 你能做的就是在插值时添加一些条件

{{ questions.length > 0 ? questions[0].id: '' }}

这会引发错误,因为即使在axios完成插值之前,您也会直接访问索引[0],因此会引发错误

这是不安全的,肯定会导致错误。 你能做的就是在插值时添加一些条件

{{ questions.length > 0 ? questions[0].id: '' }}

因为当页面刚刚加载时,
questions
是一个空数组

当您尝试循环空数组时,循环体根本不运行:

for(让我来看看[]){
//这部分将达不到
}
但是,当您尝试从空数组的第一个元素(未定义的
)获取参数时,它将抛出一个错误

[[0].id//无法从未定义中读取“.id”
您可以做的是确保
问题
中包含以下内容:

<p v-if="questions.length > 0"> {{ questions[0].id }} </p>

{{{questions[0].id}


因为当页面刚刚加载时,
问题是一个空数组

当您尝试循环空数组时,循环体根本不运行:

for(让我来看看[]){
//这部分将达不到
}
但是,当您尝试从空数组的第一个元素(未定义的
)获取参数时,它将抛出一个错误

[[0].id//无法从未定义中读取“.id”
您可以做的是确保
问题
中包含以下内容:

<p v-if="questions.length > 0"> {{ questions[0].id }} </p>

{{{questions[0].id}