加载页面时,$greeting
会显示正确的值。
由于某些原因,当我更改input
中的文本时,它没有更新。
<script>
import { name, greeting } from './stores.js';
</script>
<h1>{$greeting}</h1>
<input value={$name}>
import { writable, derived } from 'svelte/store'
export const name = writable('world')
export const greeting = derived(
name,
$name => `Hello ${$name}!`
)
答案 0 :(得分:2)
您需要像这样在bind:value
上input
:
<input bind:value={$name}>
您拥有的方式仅适用于页面加载。此后,它不再听input
上的更改,这就是$name
不更新的原因。
bind:value
类似于在HTML中执行onchange
:
<input
onchange="event => name.set(event.target.value)"
value={$name}
>