最近在用一個后台管理開源框架時,動態配置路由,報錯addRoutes()傳的值不是數組,研究后發現是因為我傳的數組中有__ob__這個對象。
后來只有格式轉了一下才生效。
// router.addRoutes(accessRoutes) // 這種寫法報錯 router.addRoutes([...accessRoutes])
兩個數組accessRoutes 和 [...accessRoutes]打印之后的區別:
vue中,帶有_ob__:Observer的數組,無法取到里面的值
console.log('開始') console.log([...this.upData]) 拷貝一個數組, 打印此刻的瞬時狀態 console.log(this.upData[0]) console.log('結束')
打印this.upData[0]
的值,為undefined
,
自己也百度了下vue的Observer,只是得到大概信息:observer是Vue核心中最重要的一個模塊(個人認為),能夠實現視圖與數據的響應式更新,底層全憑observer的支持。
百度也有答案講的是:控制台打印的是引用,打印的時候並沒有值,之后某個時刻有值了,然后才能打印出來值,提議可以試試下面方法:
console.log('開始') console.log([...this.upData]) 拷貝一個數組, 打印此刻的瞬時狀態 console.log(this.upData[0]) console.log('結束')
參考地址:https://segmentfault.com/q/1010000016033230