2016-08-16 49 views
0

我試圖通過調用getSites()方法如下面如何從Vuex/Vues中的動作調用另一個動作?

代碼

import http from 'services/http.service'; 
import logging from 'services/logging.service'; 

const sites = http('sites', localStorage); 

export default { 
    getSites({dispatch}) { 
     console.log('getSites') 
     sites.all().then((response) => { 
      dispatch('setSites', response.data.results); 
     }); 
    }, 
    deleteSite({dispatch}, site) { 
     return sites.delete(site).then(() => { 
      this.getSites() // <-------- doesn't works 
     }); 
    }, 
}; 

我收到以下錯誤刪除其中一個後更新的網站列表

deletion failed ReferenceError: getSites is not defined

問題

我該如何調用獲取我的新項目列表?或者我應該在我的組件then()內部執行此操作嗎?

+0

遲到一點,但不會是工作做'訊(「getSites」)',而不是'this.getSites()'? – Can

回答

1

我刪除電話從actions.js並沒有從我的組件方法內:

import actions from 'vuex/actions'; 

export default{ 
    // … 
    methods: { 
     // … 
     delete_site(site){ 
      return this.deleteSite(site).then(response => { 
       this.getSites(); // <----------- call from here 
      }); 
     }, 
    vuex: { 
     actions: { 
      getSites: actions.getSites, 
      deleteSite: actions.deleteSite, 
     } 
    } 
} 
相關問題