如果是 Bug:
自定义组件事件使用bind默认还是会冒泡到页面
* 如何复现?wx.uploadFile上传。
组件b
这里是组件的内部节点
{{title}}
A[0].b: {{A[0].b}}
点击更改A[0].b的值
Component({
properties: {
title: {
type: String,
//value: '5555',
observer(newVal, oldVal){
console.log(newVal +'***'+oldVal)
}
},
testA: Object
},
data: {
A: [
{
b: 'bbb'
}
],
_a: 'aaa'
},
ready(){
// var query = wx.createSelectorQuery()
},
methods: {
_changeVal(e){
this.replaceDataOnPath(['A', 0, 'b'], 'myPrivateData') // 这里将 data.A[0].B 设为 'myPrivateData'
this.applyDataUpdates();
this.setData({
'A[0].b': 'hi, i\'m changed'
})
this.triggerEvent('myevent', {
d: this.data
},{
//bubbles: true
})
}
}
})
页面a:
这里是插入到组件slot中的内容
// pages/A/A.js
Page({
/**
* 页面的初始数据
*/
data: {
a:{
aa: 'aa',
bb: 'bb'
},
b: {
bb: 22,
cc: true
}
},
maopao(e){
console.log('mao pao le.')
},
myEvent(e){
console.log('myEvent: ');
console.log(e.detail);
}
})
演示如下:
@官网
微信小程序开发问题解答 本文来自微信小程序工厂 http://www.xcxgc.com,转载请保留。
微信小程序开发者回答:
L***:
tap事件是全局冒泡的(bubbles: true, composed: true),想要阻止冒泡,请使用catchtap。
棉***:
好的,不过还是建议修正下官方文档,上面写的就是用的bind。
还有那个组件间的联系建议提供个可执行的示例,我是用官方示例,怎么改都获取不到nodes节点。
万分感谢
发现了一个bug
L***:
文档没有任何问题。tap本身就是冒泡的,需要开发者自行控制。
棉***:
好的。
本文网址:http://www.91bianli.com/weixinxiaochengxu/31847.html