<p>我有两个 vue 文件,App.vue 和一个组件UsersPage.vue。</p>
<p>UsersPage.vue:</p>
<pre class="brush:php;toolbar:false;"><脚本>
导出默认值{
数据:()=>({
用户列表:[]
}),
方法:{
异步创建用户列表(){
this.usersList =等待fetch(“https://jsonplaceholder.typicode.com/users”).then((response)=>response.json());
}
},
创建(){
this.createUsersList();
}
}
</脚本>
<模板>
在你的
v-for
中,你使用了users.address.street
。当你将
[1, 2]
传递给usersList
并且Vue通过v-for
解析这些项时,它尝试读取每个数字的address.street
。因为它们是数字,它们的
address
是undefined
。当你尝试访问undefined
的任何属性时,你会得到你正在遇到的错误。注意:如果你希望你的
v-for
能够解析没有address
的项而不抛出错误,你可以将users.address.street
替换为users.address?.street
。文档: nullish coalescing operator。
另外,你不应该将你的迭代器命名为
users
,因为这可能会让你或其他需要修改该代码的开发人员对users
是什么感到困惑。你应该将其命名为user
(例如:v-for="user in usersList" :key="user.id"
)。但这并不改变当它是一个数字时,你无法访问它的
address.street
属性的事实。