出现以下错误,说通俗点就是三层表达式a.b.c,在对象a中没有对象b,那么读取对象a.b.c中的值,自然会报错。如果是两层表达式a.b则不会报错,返回的是undefined。
【根本原因】:
我们发现这里的info是vuex中state管理加载的数据,异步调用显示,然后vue渲染机制中:
异步数据先显示初始数据,再显示带数据的数据
解决:
第一种方法:在三层表达式前加个v-if判断
备注:大多数时候会不成功
第二种方法:写全数据结构,避免获取不存在的字段。
备注:百分之99可以解决
如:
storeData: {
realData: { //实时数据
current: { //当前数据
storeUserViews: 0, //店铺访客量
productTotalSales: 0, //商品销量
productPageViews: 0, //商品浏览量
storePageViews: 0 //店铺浏览量
},
before: { //比较之前数据
storeUserViews: 0,
productTotalSales: 0,
productPageViews: 0,
storePageViews: 0
}
}
}