Событие клика на компоненте root не работает - PullRequest
0 голосов
/ 22 февраля 2020

Я новичок в Svelte и пытаюсь добавить событие on: click в пользовательский компонент root (в Vue Я использую это для решения, написав v-on: click.native = .. ., но, похоже, я что-то не так делаю, потому что событие не стреляет. Я написал простой пример на Svelte repl здесь . Событие click запускается для элемента div, но не для компонента.

1 Ответ

4 голосов
/ 22 февраля 2020

Svelte не передает автоматически собственные события из элемента root компонента, поскольку компоненты Svelte не обязаны иметь единственный элемент root (или вообще любые элементы).

Так Вы должны сами связать событие в компоненте.

Вы можете go полностью с createEventDispatcher, но есть также сокращенный синтаксис для именно того, что вы хотите сделать, проксирование собственных событий DOM.

Если директива on: используется без значения, компонент будет пересылать событие, что означает, что его может прослушивать потребитель компонента.

документы

Итак, с вашим примером, что-то вроде этого:

<div on:click>
    <h2>
        {book.title}
    </h2>
    <h5>
        {book.author}
    </h5>
</div>
...