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

vue中$emit事件无法触发。

vue中$emit事件无法触发。

慕虎7371278 2018-12-27 22:19:58
1、我用$emit方法去实现子组件调用父组件方法的功能,开始的时候都能正常使用,但是后来我在下面的代码中就无法触发了,网上说是方法大小写的原因,但是改了之后还是不行~代码如下:  editCreditApi(params).then((res) => {    let rowId = this.$store.state.rowId;    let status = this.$store.state.productStatus;    let productType = this.$store.state.dialogType;    let params = {      id: rowId    }    if (status == '草稿') {      creditreferAPI(params).then((res) => {        **this.$emit('getFundList','edit');**      })    }  })      但是,把这段代码放到外面就能正常调用:不知道大家有没有遇到这种情况,或者是知道是这种情况是什么原因导致的,如能解惑,万分感激!ps:大家都觉得是this的指向问题导致的,但是我在外面用that把this存起来,再去调用还是不行~
查看完整描述

1 回答

?
慕沐林林

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

emit里的事件名不要用大写字母试试

https://img1.sycdn.imooc.com//5c4d57190001509a06430432.jpg

源码里检测到用大写会报警告

原因是var cbs = vm._events[event];
这边vm._events里面的事件名(也就是你模板里监听的事件名)都是会转成小写的
而触发传入的是大写字母的方法 找不到 就不会走到下面的if事件 也就不会触发事件效果


查看完整回答
反对 回复 2019-01-27
  • 1 回答
  • 0 关注
  • 6933 浏览
慕课专栏
更多

添加回答

举报

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