Component自定义组件 事件如何触发
发布于 6 年前 作者 syuan 20254 次浏览 来自 问答


组件:

methods: {

   _emitMyEvent: function () {

   this.triggerEvent('myevent', {})

   }

}





<component-tag-name inner-text="Some text1" bindmyevent="onMyEvent" >component-tag-name>



Page({

 onMyEvent: function(e){   console.log(e);//没有触发  } })

好奇怪文档上面这样写的,就是没有触发onMyEvent事件

10 回复

恩,我刚刚试了,可以,通过troggerEvent的第二个参数,然后在页面的e.detail对象获取到了组件的数据.

事件当然是要组件主动触发的。

目前有个bug导致bind:myevent有时候不会生效,你可以先把冒号去掉来规避一下。

然后检查一下你调用triggerEvent的时机是否正确。

意思是在

onMyEvent: function (e) {

 

  },

方法调用triggerEvent?这怎么调用呀,好难理解呀!

比如监听tap事件,在bindtap回调函数中主动调用一下triggerEvent。

可以的,请参见文档。

哦,主动触发呀!

恩,明白了,谢谢你哦!可以传递数据吗?比如你写的,可以传递数据给change方法吗?

比如基础库中的switch组件,它的change事件是在tap时候触发的,实现是这样:

// switch.js
Component({
  onTap: function(){
    this.triggerEvent('change')
  }
})
<view bindtap="onTap" />

要另外调用这个triggerEvent?怎么调用呀? _emitMyEvent这个方法我放在生命周期函数里面,自动调用了,我想点击调用的!

回到顶部