2

以下のようなメソッドを呼び出して、サイトの1つを削除した後、サイトのリストを更新しようとしていますgetSites()

コード

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
        });
    },
};

次のエラーが表示されます

削除に失敗しました ReferenceError: getSites が定義されていません

質問

アイテムの新しいリストを取得するにはどうすればよいですか? または、コンポーネント内で行う必要がありますthen()か?

4

1 に答える 1

3

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,
        }
    }
}
于 2016-08-16T16:49:06.263 に答える