如何在模板上定义的循环期间显示 Vue 数据中数组内对象的 属性?

How to show a property from an object inside an array in Vue data during a loop defined on the Template?

我的数据结构:

data: {
    OBJs: [ 
        { "imageUrl": "site/image1.png", "name": "name1" }, 
        { "imageUrl": "site/image2.png", "name": "name2" }, 
        { "imageUrl": "site/image3.png", "name": "name3" }, 
        { "imageUrl": "site/image4.png", "name": "name4" }, 
        ]
}

然后在模板上

<div v-for="index in OBJs.length" :key="index">
    {{OBJs[index].imageUrl}}
</div>

但是我一直收到这个错误。

如果我只渲染 OBJs[index] 是这样的:

<div v-for="index in OBJs.length" :key="index">
    {{OBJs[index]}}
</div>

...我得到了所有对象!

 { "imageUrl": "site/image1.png", "name": "name1" }
 { "imageUrl": "site/image2.png", "name": "name2" } 
 { "imageUrl": "site/image3.png", "name": "name3" } 
 { "imageUrl": "site/image4.png", "name": "name4" } 

那么为什么它们是未定义的?有人能帮忙吗?

你不需要使用 length

只是 OBJs - 然后你将在每次迭代中得到数组项

如果你有这样的结构:

export default {
    data() {
        return {
            data: {
                OBJs: [ 
                    { "imageUrl": "site/image1.png", "name": "name1" }, 
                    { "imageUrl": "site/image2.png", "name": "name2" }, 
                    { "imageUrl": "site/image3.png", "name": "name3" }, 
                    { "imageUrl": "site/image4.png", "name": "name4" }, 
                    ]
            }
        };
    }
};

UI:

<ul>
    <li v-for="item in data.OBJs" :key="item">{{item.imageUrl}}</li>
</ul>