【快应用】HarmonyOS鸿蒙Next中同时传递事件对象和自定义参数,无法正确接收事件对象
【快应用】HarmonyOS鸿蒙Next中同时传递事件对象和自定义参数,无法正确接收事件对象 【关键词】
事件绑定、自定义参数、事件对象
【问题背景】
在快应用中采用如下方式绑定组件的事件方法,同时传递事件对象和自定义参数,发现回调方法中没有正确接收到事件对象。
问题代码如下:
<template>
<!-- Only one root node is allowed in template. -->
<div class="container">
<input id="input1" type="button" value="跳转" "jump"(1)/>
</div>
</template>
<script>
module.exports = {
jump: function (event, v) {
console.info("e = " + JSON.stringify(event));
console.info("v = " + v);
},
}
</script>
截图
【问题分析】
上述代码中jump(event,1)不需要带上event事件对象,因为回调函数被调用时,会在参数列表末尾自动添加一个evt参数,通过evt参数访问回调事件相关上下文数据。
【解决方法】
修改代码如下:
<template>
<!-- Only one root node is allowed in template. -->
<div class="container">
<!-- 把问题代码中jump(event,1)修改为jump(1) -->
<input id="input1" type="button" value="跳转" "jump"(1) />
</div>
</template>
<script>
module.exports = {
jump: function (v, evt) {
console.info("e = " + JSON.stringify(evt));
console.info("v = " + v);
}
}
</script>
修改后运行日志如下:
更多关于【快应用】HarmonyOS鸿蒙Next中同时传递事件对象和自定义参数,无法正确接收事件对象的实战教程也可以访问 https://www.itying.com/category-93-b0.html
1 回复
更多关于【快应用】HarmonyOS鸿蒙Next中同时传递事件对象和自定义参数,无法正确接收事件对象的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中,若需同时传递事件对象和自定义参数,建议使用CustomEvent
。首先,创建CustomEvent
对象,将自定义参数放入detail
属性中。然后,在事件处理函数中,通过event.detail
获取自定义参数,同时event
对象本身仍可访问。确保事件绑定和参数传递方式正确,避免覆盖或丢失事件对象。