收藏
回答

自定义组件事件无法停止冒泡,层级展示不正确?

  1. 自定义组件事件无法停止冒泡

  2. 自定义组件层级展示不正确


页面代码:

<foo>
  <bar></bar>
</foo>


foo 组件:

<view bindtap="clickfoo">
  <text>foo hello world</text>
  <slot></slot>
</view>


bar 组件:

<form catch:submit="onsubmit">
  <button form-type="submit">bar button</button>
</form>


事件打印如图:


期望行为:只是触发 click bar 的 submit 事件


wxml panel 展示的节点位置:


期望位置:bar 组件和 foo 组件的 text 同层级

回答关注问题邀请回答
收藏

4 个回答

  • o0o有脾气的酸奶
    o0o有脾气的酸奶
    2019-08-16

    有必要<foo>套<bar>吗

    <view>

       <foo></foo>

       <bar></bar>

    </view>

    2019-08-16
    有用
    回复 6
    • AnnatarHe
      AnnatarHe
      2019-08-18
      不能嵌套的话,组件化还有什么意义。我这里只是一个示例,实际情况远比这个 demo 复杂
      2019-08-18
      回复
    • o0o有脾气的酸奶
      o0o有脾气的酸奶
      2019-08-19回复AnnatarHe
      代码片段 https://developers.weixin.qq.com/s/M2xQ4Jmj7saV 这个应该满足你的要求
      2019-08-19
      回复
    • AnnatarHe
      AnnatarHe
      2019-08-19回复o0o有脾气的酸奶
      感谢,我现在通过检查 dataset 的形式也绕过了这个问题。在这里发帖的意义是期望 eng/pm 能看到,给个合理的解释,或者明确是 bug 及时处理。
      2019-08-19
      回复
    • MissYoung
      MissYoung
      2019-08-28回复o0o有脾气的酸奶

      https://developers.weixin.qq.com/s/M2xQ4Jmj7saV代码片段中的index.wxml改为如下,还是会触发clickTopFoo,请问了解这个是什么回事吗?

      <view bindtap="clickTopFoo">

      <bar bindcustomevent="onTopSubmit"></bar>

      </view>


      2019-08-28
      回复
    • o0o有脾气的酸奶
      o0o有脾气的酸奶
      2019-08-28回复MissYoung
      不清楚,但是你可以在bar上个catchtap="test",在js里定义一个空的方法,test:function(){},就不会触发clickTopFoo了
      2019-08-28
      回复
    查看更多(1)
  • 睡前原谅一切
    睡前原谅一切
    2019-08-15

    catchtap不行么

    2019-08-15
    有用
    回复
  • 卢霄霄
    卢霄霄
    2019-08-15

    估计是你要给form上也加个 catchtap

    2019-08-15
    有用
    回复
  • AnnatarHe
    AnnatarHe
    2019-08-15

    顺便吐槽一句:这个富文本编辑器和代码高亮真的是 2019 年能拿的出手的产品吗

    2019-08-15
    有用
    回复
登录 后发表内容
问题标签