Svelte не обновляет производное значение от входа - PullRequest
1 голос
/ 03 мая 2019

Когда я загружаю страницу, отображается $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 Ответ

3 голосов
/ 03 мая 2019

Вам нужно bind:value на input примерно так:

<input bind:value={$name}>

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

bind:value похоже на выполнение onchange в HTML:

<input
    onchange="event => name.set(event.target.value)"
    value={$name}
>
...