了解我的自定义 Svelte 组件中是否有单击事件处理程序

cam*_*aca 6 svelte

有没有办法知道我的自定义组件上是否设置了单击处理程序?我想向其中添加一个 CSS 类来添加样式cursor: pointer;,但前提是单击时会发生某些情况。

为了说明这一点,以下是自定义组件:

<script>
  $: magic = ? // this is what I'm after
</script>

<div on:click
     class:pointer={magic}
>
  I might be clickable!
</div>

<style>
  .pointer {
    cursor: pointer;
  }
</style>
Run Code Online (Sandbox Code Playgroud)

Zac*_*iah 5

据我所知,由于事件在 svelte 中实现的方式,这是不可能的,但是,如果您需要更精细的控制,那么仅使用 prop 并不一定是错误的。IE

<script>
export let onClick = () => {}
</script>

<button on:click={onClick}>Hello</button>
Run Code Online (Sandbox Code Playgroud)

以下是 svelte 团队对此主题的评论