Svelte, on: событие click внутри каждого блока срабатывает при загрузке страницы - PullRequest
1 голос
/ 18 июня 2020

Проблема в том, что в svelte on: click по какой-то причине срабатывает триггер при загрузке страницы. Может ли кто-нибудь объяснить мне, почему это происходит и как этого избежать, чтобы он срабатывал только тогда, когда вы действительно устанавливаете флажок. Это происходит, только если on: click находится внутри каждого блока.

<script>
    function handleClick(number) {
        alert(number)
    }
    let numbers = [1,2,3,4,5,6]
</script>
{#each numbers as number}
    <input type=checkbox on:click={handleClick(number)}>
{/each}

Вы можете посмотреть его здесь

1 Ответ

1 голос
/ 18 июня 2020

Значение on:click должно быть функцией. Вы вызываете функцию - это ничем не отличается от выполнения чего-то вроде этого ...

<p>{a} + {b} = {sum(a, b)}</p>

... которая, как и следовало ожидать, выводит результат вызова функции sum.

Вместо этого сделайте следующее:

<input type=checkbox on:click={() => handleClick(number)}>
...