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' }) } }