博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何在 vuex action 中获取到 vue 实例
阅读量:5123 次
发布时间:2019-06-13

本文共 970 字,大约阅读时间需要 3 分钟。

问题:

在做运营开发工具的时候 我想要请求后台服务器保存成功后 弹出一个弹框(饿了吗 的 message 弹框), 由于$message 是挂在 Vue原型链上的方法 (Vue.prototype.$message = Message;)。以下action.js 中的this不指向Vue,因此以下代码会报错。

//action.js     export const saveActivity = ({commit},params) => {      return Fetch.post(`/activities`,params).then( data => {        if(data.code===2000){             this.$message('保存成功') ;  // 报错!!!        }      })    };

解决办法:

export const saveActivity = ({commit},params) => {  return Fetch.post(`/activities`,params).then( data => {    return data  })};

由于action 的处理函数返回的是 promise 对象,此处可以在调用saveActivity 的组件中 .then() 方法中处理:

methods:{...mapActions([      'saveActivity'    ]),this.saveActivity(params).then(data=>{        if(data.data.code === 2000){          this.$message({            message: '保存成功',            type: 'success',            center:true          })        }      })}

综上: 虽然没有在 action 中获取到 vue , 但是用了另一种方法同样实现了我的功能。 以后类似这种问题都可以像这样解决。

原文地址:

转载于:https://www.cnblogs.com/lalalagq/p/9919483.html

你可能感兴趣的文章
C# 类(10) 抽象类.
查看>>
Vue_(组件通讯)子组件向父组件传值
查看>>
jvm参数
查看>>
我对前端MVC的理解
查看>>
Silverlight实用窍门系列:19.Silverlight调用webservice上传多个文件【附带源码实例】...
查看>>
2016.3.31考试心得
查看>>
mmap和MappedByteBuffer
查看>>
STM32单片机使用注意事项
查看>>
swing入门教程
查看>>
好莱坞十大导演排名及其代表作,你看过多少?
查看>>
hihocoder1187 Divisors
查看>>
Azure 托管镜像和非托管镜像对比
查看>>
js window.open 参数设置
查看>>
032. asp.netWeb用户控件之一初识用户控件并为其自定义属性
查看>>
前端监控
查看>>
clipboard.js使用方法
查看>>
移动开发平台-应用之星app制作教程
查看>>
leetcode 459. 重复的子字符串(Repeated Substring Pattern)
查看>>
伪类与超链接
查看>>
centos 7 redis-4.0.11 主从
查看>>