亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么$store.state里的數據通過mapState后是undefined?

為什么$store.state里的數據通過mapState后是undefined?

Smart貓小萌 2019-03-15 19:15:43
我在一個子組件里面通過this.$store.state能打印出數據,但是通過mapState映射過后就是undefined了,第一個console有數據,第二個undefined,有可能是什么原因呢?值得一提的是我store里面的adminInfo是通過從服務器取的,是否有影響呢?
查看完整描述

4 回答

?
青春有我

TA貢獻1784條經驗 獲得超8個贊

目測這一段沒有問題,懷疑是你在 Vuex 里聲明的時候沒有聲明 adminInfo,所以這個字段不是響應式,所以就獲取不到了。把 Vuex 里的代碼貼出來看看。


查看完整回答
反對 回復 2019-03-18
?
吃雞游戲

TA貢獻1829條經驗 獲得超7個贊

沒看過vuex的源碼

猜測:

  1. computed: {...mapState(['count'])}這種寫法只是取一次值,因為沒有對應的依賴追蹤,他只調用一次,不會去更新。

  2. computed: mapState({adminInfo: state => state.adminInfo}) 這種寫法是每次都從state里面取值,依賴追蹤到state的數據。

所以才導致兩次的取得不一樣。這也就是為什么幾乎用的都是 mapGetters 的原因,因為需要自動的更新數據。當然如果只取出來用一次然后就不管的了,那么用mapState也不是不可以。


查看完整回答
反對 回復 2019-03-18
?
慕后森

TA貢獻1802條經驗 獲得超5個贊

因為你在vm這個對象上是沒有adminInfo這個變量的,要是想this.adminInfo去獲取adminInfo,你可以在computed中定義一個變量adminInfo然后在this.adminInfo去訪問。

如下:


computed: mapState({

    // 箭頭函數可使代碼更簡練

    adminInfo: state => state.adminInfo,

  })


查看完整回答
反對 回復 2019-03-18
  • 4 回答
  • 0 關注
  • 4556 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號