为了账号安全,请及时绑定邮箱和手机立即绑定

写插件处理this传递的问题

写插件处理this传递的问题

明月笑刀无情 2019-03-20 18:15:30
自己写了个vue的全局Toast插件,其中一个功能想做成在toast消失后提供一个api能传一个回调函数,类似于这样使用this.$toast({    callback(){        this.$router.push('/')    }})但是实现的时候this传不过去。目前的方法是用了一个新的全局Vue实例通过$emit/$on来实现,但是感觉这样做会让toast插件与业务代码耦合,想问下如何解决这个问题
查看完整描述

2 回答

?
函数式编程

TA贡献1807条经验 获得超9个赞

请使用箭头函数



this.$toast({

    callback: () => {

        this.$router.push('/');

    }

});

你之前的写法,this会被重新指向到window,就像使用function callback() {}一样,除非你用了bind()。

而箭头函数不一样,this总是指向用上一级的作用域


查看完整回答
反对 回复 2019-04-05
?
Qyouu

TA贡献1786条经验 获得超11个赞

可以加一个入参,传入当前实例


查看完整回答
反对 回复 2019-04-05
  • 2 回答
  • 0 关注
  • 451 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信