我有三个文件:
App.svelte
:
<script>
import Component from "./Component.svelte"
import { items } from "./store.js"
$items.set("a", { name: "John", index: "a" })
$items.set("b", { name: "Jack", index: "b" })
</script>
<h1>DIV each:</h1>
{#if $items && $items.size > 0}
{#each $items.values() as item}
<div>Name: {item.name}</div>
{/each}
{/if}
<h1>Component each:</h1>
{#if $items && $items.size > 0}
{#each $items.values() as item}
<div><Component index={item.index} /></div>
{/each}
{/if}
Component.svelte
:
<script>
import { items } from "./store.js"
let { index = null } = $props()
let data = $state($items.get(index))
</script>
<div><input bind:value={data.name} /></div>
store.js
:
import { writable } from "svelte/store";
import { SvelteMap } from "svelte/reactivity";
export let items = writable(new SvelteMap([]))
我想知道如何在 SvelteMap 中保持反应性items
。当输入值发生变化时,它应该在 SvelteMap 中更新(因为它已绑定)。我不知道如何处理这种反应性。