如何在 svelte 中刷新商店?
How can I refresh a store in svelte?
在我的 svelte 应用程序中,我有一个列表为空的商店。该列表稍后可能会由外部函数填充。我怎样才能让应用程序识别新数据(在本例中是两秒后)?
App.svelte
<script>
import Cars from './Cars.svelte'
</script>
Cars.svelte
<div>
{#each $cars as car}
<p>{car}</p>
{/each}
</div>
<button class="select-button">Save</button>
<script>
import { cars } from './store.js'
$cars = $cars
</script>
store.js
import { writable } from 'svelte/store'
let blank_cars = [];
let raw_cars = ['Audi', 'Aston Martin', 'BMW'];
export var cars = writable(blank_cars);
setTimeout(function() {
cars = writable(raw_cars);
console.log ('cars updated')
}, 2000)
使用 set
而不是创建新的 writable
,例如:
cars.set(raw_cars)
工作示例:https://svelte.dev/repl/d2d602cd256844d883285c03b3537f9a?version=3.46.6
在我的 svelte 应用程序中,我有一个列表为空的商店。该列表稍后可能会由外部函数填充。我怎样才能让应用程序识别新数据(在本例中是两秒后)?
App.svelte
<script>
import Cars from './Cars.svelte'
</script>
Cars.svelte
<div>
{#each $cars as car}
<p>{car}</p>
{/each}
</div>
<button class="select-button">Save</button>
<script>
import { cars } from './store.js'
$cars = $cars
</script>
store.js
import { writable } from 'svelte/store'
let blank_cars = [];
let raw_cars = ['Audi', 'Aston Martin', 'BMW'];
export var cars = writable(blank_cars);
setTimeout(function() {
cars = writable(raw_cars);
console.log ('cars updated')
}, 2000)
使用 set
而不是创建新的 writable
,例如:
cars.set(raw_cars)
工作示例:https://svelte.dev/repl/d2d602cd256844d883285c03b3537f9a?version=3.46.6