收藏
回答

Component自定义组件 事件如何触发





组件:

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事件

最后一次编辑于  2017-11-16
回答关注问题邀请回答
收藏

14 个回答

  • LastLeaf
    LastLeaf
    2017-11-16

    可以的,请参见文档。

    2017-11-16
    有用
    回复
  • LastLeaf
    LastLeaf
    2017-11-16

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


    // switch.js
    Component({
      onTap: function(){
        this.triggerEvent('change')
      }
    })


    <view bindtap="onTap" />


    2017-11-16
    有用
    回复
  • LastLeaf
    LastLeaf
    2017-11-16

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

    2017-11-16
    有用
    回复
  • LastLeaf
    LastLeaf
    2017-11-16

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

    2017-11-16
    有用
    回复
  • LastLeaf
    LastLeaf
    2017-11-16

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

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

    2017-11-16
    有用
    回复
  • HY
    HY
    2017-11-16

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


    2017-11-16
    有用
    回复
  • HY
    HY
    2017-11-16

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

    2017-11-16
    有用
    回复
  • HY
    HY
    2017-11-16

    意思是在

    onMyEvent: function (e) {

     

      },

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

    2017-11-16
    有用
    回复
  • HY
    HY
    2017-11-16

    哦,主动触发呀!

    2017-11-16
    有用
    回复
  • HY
    HY
    2017-11-16

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

    2017-11-16
    有用
    回复

正在加载...

登录 后发表内容