Это будет похоже на событие on:change.

Я не использую это событие, потому что в некоторых библиотеках svelte это событие не генерируется, и подразумевается использование привязки и $.

Однако кажется, что у Svelte нет чистого синтаксиса.

Я могу думать только о чем-то вроде

$: {
    if (variable) {
        doSomething();
    }
}

Где каждый раз, когда значение variable изменяется, doSomething() будет выполняться.

Но использование оператора if странно. Что, если variable является логическим значением? Таким образом, функция не будет работать, если значение переменной равно false.

Идея состоит в том, чтобы запускать функцию каждый раз, когда значение переменной изменяется, независимо от того, каково новое значение на самом деле.

Я тоже пробовал

$: doSomething(variable);

Это работает, но это также странно, потому что функция doSomething может не нуждаться в аргументе. В этом случае аргумент предназначен исключительно для добавления variable в качестве зависимости этого синтаксиса $...

Также попробовал ответ в https://stackoverflow.com/a/56987526/11752443, но этот просто не Работа. И это не упоминается в документе (https://stackoverflow.com/a/56987526/11752443).

Заранее спасибо!

1
powerseed 16 Ноя 2022 в 08:24

1 ответ

Решение, предложенное Ричем Харрисом, кажется, работает:

$: variable, doSomething()

Рабочий пример: https://svelte.dev/repl/c25bdd71c9764f1f809bd35737fbaeb9?version=3.53.1

1
CD.. 16 Ноя 2022 в 09:27