vuex TypeError: Cannot read property 'commit' of undefined

clipboard.png

自定义组件 box.vue

methods: {
     cancleBtn () {
      this.show = false;
     },
     successBtn () {
         this.show = false,
         this.addMemberList = this.resultList;
         self.$store.commit("addMemberList", this.addMemberList);
     },
}

对应的js 如下

let transferBox = (options = {}) => {
  let transferBoxConstructor = Vue.extend(transferBoxComponent)
  let instance = new transferBoxConstructor({
    el: document.createElement('div')
  })
  document.body.appendChild(instance.$el)
  // 将单个 confirm instance 的配置合并到默认值中
  Object.assign(instance.$data, options)
  return new Promise((resolve, reject) => {
    instance.show = true
    let successBtn = instance.successBtn
    let cancelBtn = instance.cancelBtn
    instance.successBtn = () => {
      resolve()
      successBtn()
    }
    instance.cancelBtn = (err) => {
      reject(err)
      cancelBtn()
    }
  })
}

在其他组件中引用

clipboard.png

通过上述方式调用,调用后会弹出模态框,点击模态框中确定按钮,将模态框中数据传递至当前组件中,但是使用vuex commit 一直报 commit not defined

 successBtn () {
     this.show = false,
     this.addMemberList = this.resultList;
     conole.log(this);
     elf.$store.commit("addMemberList", this.addMemberList);
 },

打印this,发现没有store 这个对象,求原因

另外,查了下
在自定义组件的created中

    created () {
        self = this;
    }

仍然无法获取 store 对象
求原因

阅读 9.1k
1 个回答

导入了store没

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题