【问题标题】:$emit does not add event vue3$emit 不添加事件 vue3
【发布时间】:2022-01-27 00:45:04
【问题描述】:

我有以下元素,它监听drawend 事件。

<ol-interaction-draw
  ref="test"
  @drawend="drawend"
>

drawend被元素本身正常触发时,event被传递给函数:

drawend(event) {
  console.log(event);
}

但是当我尝试手动触发它时,eventundefined

test = ref(null);
test.$emit("drawend");

如何正确发出事件?

【问题讨论】:

    标签: javascript events vuejs3 vue3-openlayers


    【解决方案1】:

    当你调用这样的事件时:

    <ol-interaction-draw
      ref="test"
      @drawend="drawend"
    >
    

    其实你是在打电话:

    <ol-interaction-draw
      ref="test"
      @drawend="$emit('drawend', $event)"
    >
    

    其中 $emit 有第二个参数 - 事件对象或任何其他数据。

    例如,尝试这样做,您将亲眼看到将转移到抽奖结束的内容:

    test = ref(null);
    test.$emit("drawend", {}); // => where {} is a custom object that is passed to the "drawend" trigger
    

    【讨论】:

    • 但是当手动发射drawend时,如何访问$event,就好像drawend是由元素本身触发的一样?
    猜你喜欢
    • 1970-01-01
    • 2022-01-16
    • 2023-03-08
    • 2018-01-13
    • 2021-04-27
    • 2021-06-24
    • 2021-07-23
    • 2023-03-21
    • 2020-09-12
    相关资源
    最近更新 更多