小编Pau*_*aul的帖子

在 Svelte 3 中访问生成的自定义元素

我正在使用 Svelte 3 和使用 Shadow DOM 生成自定义元素的选项,但我不知道如何获取对包装器自定义元素 (HTMLElement) 的引用,以便我可以附加事件处理程序和操作属性。我有这样的事情:

<svelte:options tag="custom-button"/>

<script>
    import { onMount } from 'svelte';

    function _onClick(e) {
        this.setAttribute('pressed', null);
    }

    var _boundClick = _onClick.bind(this);

    onMount((e) => {
        this.addEventListener('click', _boundClick);

        return () => {
            this.removeEventListener('click', _boundClick);
        };
    });
</script>

<style>
  :host {
    display: block;
  }

  /* Other Styling */
</style>

<slot></slot>
Run Code Online (Sandbox Code Playgroud)

“this”位不起作用(它们在普通的香草自定义元素中起作用)。是否有一些 Svelte 特定的方法来获取对脚本中宿主元素的引用?

谢谢

svelte svelte-component

1
推荐指数
1
解决办法
2052
查看次数

标签 统计

svelte ×1

svelte-component ×1