通过自定义属性传值: 在触发事件的组件上,可以通过自定义属性将需要传递的值绑定到事件对象上。在事件处理函数中,通过event.currentTarget.dataset
来获取自定义属性的值。
示例代码:
htmlCopy Code<!-- 触发事件的组件 -->
<view data-value="Hello" bindtap="handleTap">点击我</view>
<!-- 事件处理函数 -->
<script>
Page({
handleTap(event) {
const value = event.currentTarget.dataset.value;
console.log(value); // 输出 "Hello"
}
});
</script>
通过事件对象传值: 在触发事件时,可以使用event.detail
将值传递给事件处理函数。在触发事件时,可以使用triggerEvent
方法触发自定义事件,并通过detail
选项传递值。在事件处理函数中,可以通过event.detail
获取传递的值。
示例代码:
htmlCopy Code<!-- 触发事件的组件 -->
<button bindtap="handleTap">点击我</button>
<!-- 事件处理函数 -->
<script>
Component({
methods: {
handleTap(event) {
const value = 'Hello';
this.triggerEvent('customEvent', { detail: value });
}
}
});
</script>
在另一个组件中监听该事件并获取传递的值:
htmlCopy Code<!-- 监听事件的组件 -->
<component-name bind:customEvent="handleCustomEvent"></component-name>
<!-- 事件处理函数 -->
<script>
Page({
handleCustomEvent(event) {
const value = event.detail;
console.log(value); // 输出 "Hello"
}
});
</script>