ecmascript-6 - 如何从 Vuex/Vuejs 中的 Action 调用另一个 Action ?

标签 ecmascript-6 vue.js vuex

在删除其中一个网站后,我尝试通过调用如下所示的 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
        });
    },
};

我收到以下错误

deletion failed ReferenceError: getSites is not defined

问题

我应该如何调用获取我的新项目列表?或者我应该在我的组件 then() 中执行此操作?

最佳答案

我从 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,
        }
    }
}

关于ecmascript-6 - 如何从 Vuex/Vuejs 中的 Action 调用另一个 Action ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38980267/

相关文章:

javascript - 无法读取未定义的属性 'currentUser'

javascript - 如何从字符串 Vue.js 中删除 HTML 标签

javascript - 使用方法将数据分配给vue数据变量动态

javascript - Swiper.IO 分页点现在显示

vue.js - Vue CLI 为生产环境进行了缩减,但如何缩短属性和其他定义呢?

javascript - 为什么动态加载确实存在的文件时会收到 404 错误?

javascript - 升级到 typescript 2 后找不到 (string)、Object、Date、Json 的需要索引

javascript - 无法理解使用 webpack 和 es6 模块的 EventEmitter 发生了什么

javascript - Vue 计算方法 - 在数组中查找值不起作用

javascript - Vuejs - 在同一组件中获取不同的日期