Svelte 派生商店

Svelte derived store

哟!

我正在尝试更新我的派生商店,我执行以下操作

// store.js line: 20
    const updateProductOrder = newOrder => {
        update(builderStore => {
            console.log(builderStore) //undefined
        })
    }

函数由拖放产品卡片触发,第 35 行 Products.svelte 它在使用相同逻辑在主组件中执行的所有其他函数中工作得很好,由于某种原因它在嵌套组件中不起作用,例如示例: https://svelte.dev/repl/5287e7b0ba994772ae736fcc41952b08?version=3

你能帮忙解释为什么它不起作用吗?

存储更新函数必须return新值。你想要的大概是


const updateProductOrder = newOrder => {
    update(builderStore => {
        console.log(builderStore)
        return newOrder
    })
}

svelte docs for writable store 大致显示了更新合约。

    store.update((oldValue) => { return newValue })

在您的示例中,您缺少 return 语句,因此您最终 returning undefined 并因此将商店的新值设置为 undefined

这是 Incrementer.svelte 选项卡中的一个小示例 updated repl with just this change added. You can also look in the tutorial