Vue(踩坑)vue.esm.js?efeb:628 [Vue warn]: Error in render: "TypeError: Cannot read property 'length' of undefined" found in


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM