如何在 svelte 中刷新商店?

How can I refresh a store in svelte?

在我的 svelte 应用程序中,我有一个列表为空的商店。该列表稍后可能会由外部函数填充。我怎样才能让应用程序识别新数据(在本例中是两秒后)?

REPL

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