vue 报错:"TypeError: Cannot read property 'list' of undefined"

如下父组件代码,其中res一开始是
data:{
res:{}
},
后面在mounted时,异步请求成功回调将数据赋给res,然后一运行就报错,但是数据还是能成功渲染出来,为什么??:

clipboard.png

 <template>
     <div v-if="res.data.list" v-for="item in res.data.list">
         <lists v-bind="item" :title="markBlue(item.title)"
                                    :description="markBlue(item.description,'摘要:')" :searchkeyword="keyword"></lists>
     </div>
 </template>
阅读 17k
2 个回答

你首先res.data就没有值啊,把判断条件改一下吧,v-if="res.data && res.data.list"

因为你页面在刚渲染的时候,你异步请求还没完成呢,所以你直接res.data就是你的初值undefined。

建议直接在data里面定义list:[],然后模板里直接v-for:list就行。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题