【快应用】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>

截图

cke_787.png

【问题分析】

上述代码中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>

修改后运行日志如下:

cke_2562.png


更多关于【快应用】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对象本身仍可访问。确保事件绑定和参数传递方式正确,避免覆盖或丢失事件对象。

回到顶部