gpt4 book ai didi

javascript - 是否可以以某种方式直接更改派生商店的值?

转载 作者:行者123 更新时间:2023-12-05 00:42:30 25 4
gpt4 key购买 nike

我目前正在使用 SvelteKit。

我有一个 derived 存储,这是必要的,因为它依赖于另一个存储。现在我需要直接更改 derived 存储中的一些值。问题是 derived 商店据我了解是不可修改的。

有什么方法可以直接改变 derived store 的值吗?

例如,如果我有一个名为 tilesderived 存储,它是一个对象数组,我想更改其中一个对象的属性($tiles[n].x = '一些新东西')

最佳答案

您只需添加 set 函数即可使派生存储可写。

您将需要访问从中派生值的源对象,或者您需要以保留相关对象引用的方式合并新值。 (尽管在后一种情况下,您可能仍需要对父存储进行虚拟重新分配,以触发更新。)

例如

const parent = writable({ items: [{ name: 'pochi' }, { name: 'maru' }]});
const items = derived(parent, value => value.items);
items.set = newItems => $parent.items = newItems;

REPL

关于javascript - 是否可以以某种方式直接更改派生商店的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73427634/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com