mpvue 父组件的tap事件会触发在slot中的子组件tap事件???

q35jwt9p  于 4个月前  发布在  其他
关注(0)|答案(2)|浏览(46)

问题
环境:
mpvue 1.0.13
mpvue-template-compiler 1.0.13
mpvue-loader 1.1.3-alpha.1
先上代码

// 父组件 father
<template>
  <div class=“father”>
      <div>内容i</div>
      <slot></slot>
  </div>
</template>
// 子组件 sub
<template>
  <button type="primary" @tap="handler">{{text}}</button>
</template>
<script>
export default {
  props: {
     text: String
  },
  data () {
    return {
       text: ''
    }
  },
  methods: {
     handler(){
         do something...
     }
  }
}
</script>
调用:
<father><block><sub></sub></block></father>

期望的表现:
只有点击子组件button触发handler事件

观察到的表现:
父组件一旦点击,就会触发子组件的handler事件,想到用.capture,使用后父组件确实没再触发handler事件,但连子组件都触发不了 handler事件了?
解决方法:
原理官方文档已有提及 当时没太留意!!
目前解决方案是 在父组件的“所有”上级元素添加 catchtap 绑定,但感觉这样不优雅

zvms9eto

zvms9eto1#

issue超过30天无更新或响应,7天后将自动关闭,如果问题状态有更新请及时更新issue

disbfnqx

disbfnqx2#

我好像没有看到文档在哪里提到过你这个“所有”上级元素添加 catchtap 绑定

相关问题