【发布时间】:2022-01-24 04:18:07
【问题描述】:
我确信这是一个超级简单的解决方法,但我在设置可写存储时遇到了问题,它主要是反应性的,除非组件更改数据时,应用程序文件中的反应性不会火,反之亦然。代码如下:
App.svelte:
<script>
import { data } from './store.js'
import Component from './Component.svelte'
let localData
data.subscribe((value) => {
localData = value;
});
</script>
<h2>In App.svelte</h2>
<p>Hello {localData.name}!</p>
<input name="name" type="text" bind:value={localData.name}>
<p>
{localData.details.number}
</p>
<h2>In Component.svelte</h2>
<Component />
Component.svelte:
<script>
import { data } from './store.js'
let localData
data.subscribe((value) => {
localData = value;
});
</script>
<input type="number" bind:value={localData.details.number}>
<p>Hello {localData.name}!</p>
<p>{localData.details.number}</p>
store.js:
import { writable } from 'svelte/store'
export let data = writable({
name: 'Bob Smith',
details: {
dob: '1982/03/12',
favoriteFoods: ['apples', 'pears', 'bourbon'],
number: 1
},
})
如果你想在 Svelte REP 中使用它:https://svelte.dev/repl/164227336d6c4cc29f7ea0a15e89c584?version=3.44.3
【问题讨论】: