Деконструкция события "on: change" в Svelte 3 - PullRequest
0 голосов
/ 25 мая 2019

У меня есть несколько input элементов, на которые я деконструирую объект, подобный такому.

<script>
    const settings = { value: '', class: 'input'};
</script>
<input {...settings} />
<input {...settings} />
<input {...settings} />

, который отлично работает, и я очень доволен.Но я также хочу добавить общее on:change событие, подобное этому.

<script>
    const settings = { value: '', class: 'input', "on:change": () => {}};
</script>
<input {...settings} />
<input {...settings} />
<input {...settings} />

Есть какие-нибудь идеи о том, как сделать так, чтобы это «включение: изменение» было общим для всех входов без необходимости связывать каждое из них по отдельности?

1 Ответ

1 голос
/ 25 мая 2019

Вы можете сделать что-то вроде этого: https://svelte.dev/repl/96452415187144eeb1ab3a70be23b535?version=3.4.1

Но использование onchange вместо on:change имеет некоторые недостатки, такие как невозможность использования модификаторов (on:change|preventDefault, on:change|once, так далее).

Вы также можете обернуть свои входные данные в такой компонент: https://svelte.dev/repl/2ea820dd4a0b4fedbb7642bd8c1710d2?version=3.4.1

Или сделать что-то подобное (что мне кажется ближе к сценарию реального мира): https://svelte.dev/repl/caee89041bc44575a8c6fd91b78ca2e6?version=3.4.1

...