Tenho três arquivos:
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([]))
Gostaria de saber como manter a reatividade no SvelteMap items
. Quando o valor de entrada é alterado, ele deve ser atualizado no SvelteMap (pois está vinculado). Não sei como trabalhar com esse tipo de reatividade.