Svelte не обновляет производное значение от входа

Когда я загружаю страницу, $greeting показывает с правильным значением.

По какой-то причине он не обновляется, когда я изменяю текст в input,

App.svelte

<script>
    import { name, greeting } from './stores.js';
</script>

<h1>{$greeting}</h1>
<input value={$name}>

stores.js

import { writable, derived } from 'svelte/store'

export const name = writable('world')

export const greeting = derived(
    name,
    $name => `Hello ${$name}!`
)

1 ответ

Вам нужно bind:value на input вот так:

<input bind:value={$name}>

То, как вы это сделали, будет работать только при загрузке страницы. После этого он не слушал изменения на input И вот почему $name не обновлялся

bind:value похоже на делать onchange в HTML:

<input
    onchange="event => name.set(event.target.value)"
    value={$name}
>
Другие вопросы по тегам