vue请问这个报错是为什么,数据都已经渲染出来了

vue请问这个报错是为什么,数据都已经渲染出来了

<div class="p-s-i l" v-for="item in product.productItems">

<img class="icon" src="https://segmentfault.com/images/home_icon_zt.png">

<img src="https://segmentfault.com/images/product_bg_cam.png">

<p>{{item.title}}</p>

<span>{{item.description}}</span>

</div>

var product = new Vue({

el: '#app-product',

data: {

product: null,

},

methods: {

imgFormatter(val) {

return IMGPATH + val

},

getProductData() {

let this_ = this

$.ajax({

success: function success(res) {

console.log(res);//已打印,结构和上图一样

this_.product = res.data

}

});

}

})

一直报错
vue请问这个报错是为什么,数据都已经渲染出来了

回答

product 初始值 null
在接口完成前 页面渲染 product.productItems 肯定报错呀

因为,页面初次渲染的时候, product的初始值是null,product.productItems 就会报错。当接口执行完,product 有了值,就在页面上又渲染出来了。


我写过一篇文章,你可以看一下哦。

TypeError: Cannot read property ‘xxx‘ of undefined报错情况分析及解决

错误已经很明显了,渲染模板时无法读取对象属性,也就是说你获得这个数据的时候至少在beforMounted阶段之后,即在内存编译阶段就已经出错了。把getProductData方法在created钩子函数中调用应该可以解决。

以上是 vue请问这个报错是为什么,数据都已经渲染出来了 的全部内容, 来源链接: utcz.com/a/66716.html

回到顶部