我正在尝试v-使用嵌套项目的数组:
这是主数组:
export default {
data () {
return {
arr: [{
mainId: 8,
subItems: [{
subId: 1,
subSubItems: {
subSubId: 1,
name: 'Name1'
}
}]
}, {
mainId: 5,
subItems: [{
subId: 2,
subSubItems: {
subSubId: 3,
name: 'Name2'
}
},
{
subId: 3,
subSubItems: {
subSubId: 4,
name: 'Name3'
}
}]
}]
}
}
}
我试图像这样遍历这个数组:
<v-card v-for="subItem in arr" :key="subItem.mainId">
{{subItem.mainId}}
<p v-for="subSubItem in subItem.subSubId" :key="subSubItem.subSubId"></p>
{{subSubItem.name}}
</v-card>
但是不幸的是,我没有得到任何输出:控制台错误:“无法读取未定义的属性'subSubId'”
我在这里犯了什么错误?
答案 0 :(得分:1)
尝试一下:
new Vue({
el:"#app",
data: {
arr: [
{
mainId: 8,
subItems: [
{
subId: 1,
property: {
subSubId: 1,
name: 'Name1'
}
}]
},
{
mainId: 5,
subItems: [{
subId: 2,
property: {
subSubId: 3,
name: 'Name2'
}
},
{
subId: 3,
property: {
subSubId: 4,
name: 'Name3'
}
}
]
}]
}
});
<!DOCTYPE html>
<html lang="en">
<head>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.min.js"></script>
</head>
<body>
<div id="app">
<div v-for="item in arr" :key="item.mainId">
MainId : {{item.mainId}}
<p v-for="subitem in item.subItems" :key="subitem.subId">
SubItem Name : {{subitem.property.name}}
<hr/>
</p>
</div>
</div>
</body>
</html>
答案 1 :(得分:0)
您的代码正确无误,但有误:
<v-card v-for="subItem in arr" :key="subItem.mainId">
{{subItem.mainId}}
<p v-for="subSubItem in subItem.subItems" :key="subSubItem.subId">
{{subSubItem.subSubItems.name}}
</p>
</v-card>
由于subItem.subSubId
不存在,因此必须为subItem.subItems
,并且您正在{{subSubItem.name}}
标记外部设置<p>
(两者都不存在)。因此,我更改了您的代码。希望对您有所帮助。