1、项目报错如下:
2、先访问别的路由,在访问这个页面的路由这样不报错,但是我直接在这个页面上刷新就报错
3、分析解决:
1)找到我的length出现的地方,说出错说明现在info里面是空的
2)先进入其他路由---在进入当前路由---------此时我的info已经拿到了,vuex里面存的不是空对象了, 这种方式不会报错
3)直接在这个页面刷,当前路由对象就会创建,第一次显示的时候vuex里面是空的,所以会报错。
4、
用户可能从两个地方访问这个路由组件,下面是考虑两种方式进来的代码
mounted(){ //方式一:从别的路由组件切换过来走这里 new BScroll('.shop-info') if(!this.info.pics) return new BScroll('.pic-wrapper',{ scrollX:true }) const liWidth = 120; const space = 6; const objUl = this.$refs.picsUl; objUl.style.width = (liWidth + space)*this.info.pics.length - space + 'px' }, //方式二:用watch监视到当前vuex里面的info有数据了才执行后面的 watch:{ //在当前组件刷新 info(){ this.$nextTick(()=>{ new BScroll('.pic-wrapper',{ scrollX:true }) const liWidth = 120; const space = 6; const objUl = this.$refs.picsUl; objUl.style.width = (liWidth + space)*this.info.pics.length - space + 'px' }) } }