收藏
回答

父组件处理自定义事件后,可以向子组件返回处理结果吗?

结构大致是这样:

parent组件和child组件都是自定义组件,parent是个列表,里面有一系列child组件。

<!-- parent.wxml -->
<block wx:for="{{list}}">
  <child child-data="item" bind:myevent="onMyEvent" />
</block>

child.js中调用this.triggerEvent('myevent', {somedata})后,在parent.js的onMyEvent()函数中处理。

child.js在触发事件后,有什么方法可以获得处理结果(如成功或失败)吗?或者说,父组件可以找到是哪个子组件触发的事件,并修改子组件data吗?

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

1 个回答

  • 金煜峰
    金煜峰
    2020-04-11

    在 somedata 里加一个回调函数,父组件处理完后调用它就可以了

    // child.js
    var res;
    // triggerEvent 是同步方法
    this.triggerEvent('myevent', {
      data: data,
      callback(e) {
        res = e;
      }
    })
    console.log(res);
    // parent.js
    onMyEvent(e) {
      ...
      e.detail.callback(res);
    }
    
    2020-04-11
    有用 1
    回复 1
    • gjfLeo
      gjfLeo
      2020-04-12
      原来如此,非常感谢!
      2020-04-12
      回复
登录 后发表内容
问题标签