У меня есть два реактивных утверждения в Svelte. Когда дочерний оператор изменяется (на основе некоторого ввода), родительский оператор (оператор, от которого зависит дочерний оператор) также запускается. Проверьте следующий фрагмент:
<script>
const options = [
{key: 'one'},
{key: 'two'},
{key: 'three'},
];
// NOTE: initialOption may be obtained reactively from somewhere like the query string.
$: initialOption = options[0];
$: selectedOption = initialOption;
$: console.log('initialOption reactivity:', initialOption);
$: console.log('selectionOption reactivity:', selectedOption);
</script>
<select bind:value={selectedOption}>
{#each options as opt}
<option value={opt}>{opt.key}</option>
{/each}
</select>
https://svelte.dev/repl/bdc48c75acf94a9ca13da377b7cd8f19?version=3.20.1
Если вы запускаете фрагмент выше, каждый раз, когда вы пытаетесь выбрать из раскрывающегося списка (который является привязанный к selectedOption
), назначение initialOption
, кажется, вызвано повторно, почему? Это ожидаемое поведение?