2017-05-04 59 views
2

添加新的計算值,我在VUEVUE計算:從創建生命週期掛鉤

我試圖推動與名稱的計算數據初學者,這個名字來自vuex其中談到創建實例後

如何將新的計算屬性推到created()鉤子中的實例?

下面是代碼

computed: { 
      // 3 - i want to extract the object properties here computed 
      // that is easy bu using spread operator ... 
      // Problem : vue intialize computed before the created() hook 
      // so the spreed work befor passing the filling the object 
      ...this.mapGettersObj 
     }, 

     created(){ 
      // 1- i can access only this line after creating the object 
      this.stocks = this.$store.state 
      let arr=[] 
      for (let stock in this.stocks){ 
       arr.push(stock+'Getter') 
      } 
      // 2 - mapGetters returns an object 
      this.mapGettersObj=mapGetters(arr) 
     } 

如果我能創建將解決這個問題

+0

請包括你的工作代碼,並表示你已經試過了沒有奏效。 – PatrickSteele

+0

我已經插入的代碼 –

回答

0

我不知道爲什麼你在做你做了什麼之後創造新的計算值,但如果你想有計算被稱爲可以使用beforeCreate前的鉤可變量:https://alligator.io/vuejs/component-lifecycle/

你也可以做一些在

+1

我認爲這是一個好主意, ,但這並沒有解決,因爲該組件被創建後,才這樣。$存儲中創建,而不是有效的創建時間之前 所以調用計算的對象時在創建組件之前它沒有看到這個。$ store.state –

+0

使用beforeCreate()鉤子不能解決它嗎? –

+0

謝謝 我認爲這是一個好主意, ,但這並沒有解決,因爲該組件被創建後,才這樣。$存儲中創建並創建之前調用計算的對象時是無效的創建時間之前 所以組件它看不到這個$ store.state 我想知道在創建元素後將新的計算數據推送到計算對象,這可能嗎? –

0

可以在beforeCreate掛鉤做到這一點。

beforeCreate: function() { 
    this.$options.computed = { 
    demo2: function() { 
     return this.demo 
    } 
    } 
}