vuex中如何获取vue的this?

 

考虑如下场景:


       使用vue和elememt-ui开发,在vuex中调用某个接口,根据接口返回想要使用element-ui的弹窗组件提示请求信息

但是vuex中没有this,该如何调用比如:this.$message.error('xxx失败');

 

方案

比如在login登录文件中:

export default {
  data () {
    return {

    };
  },
  methods: {
    
    xxx() {


       xxx.login({
          name: 'xxx',
          pwd    : 'xxx'
        }).then(({ data: { data } }) => {
          this.$store.dispatch('xxx', {
            form: data.form,
            _this: this //在此处传入该组件的this,vuex中即可获取this
          });
      })
    }

  }
}

在vuex中:

 

import Vue from 'vue';
import Vuex from 'vuex';
Vue.use(Vuex);


export default new Vuex.Store( {

    state: {},
    
    mutations: {},
        
    actions: {},

    xxx({ commit }, Data) {
      let { _this } = Data;
      _this.$message.error('xxx失败');
    }

})

 

Logo

前往低代码交流专区

更多推荐