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}