svelte-3 - 为 Svelte 商店提取可重用 getter 的最佳实践
问题描述
为 store 提取更新函数很容易,但是有没有一种简单的方法来提取 getter。我正在尝试做这样的事情,我可以在多个地方重用 getter 函数。我想我唯一的 2 个解决方案是为每个 getter 创建派生商店或将商店合并到 1 个自定义商店中?
export function enableAll () {
if (enableAllAllowed()) {
storeA.update(current => { ...current, enabled: true });
storeB.update(current => { ...current, enabled: true });
storeC.update(current => { ...current, enabled: true });
}
}
export function enableAllAllowed () {
return get(StoreA).available && get(StoreB).available && get(StoreC).available && get(StoreD).canEnableAll;
}
<Component1>
<button disabled={!enableAllAllowed()} on:click={enableAll}>
Enable All
</button>
</Component1>
<Component2>
<button disabled={!enableAllAllowed()} on:click={enableAll}>
Enable All
</button>
</Component2>
解决方案
推荐阅读
- python - 如何修复日志记录中的错误(配置文件)
- java - Java中不一致的“必需类型:提供的字节:int”
- laravel - Laravel 侧边栏活动菜单,错误获取 URI 参数
- scheme - Dr.Racket 版本之间的问题
- javascript - 为什么当我在参数传递过程中增加它时,函数会接收原始值?
- qt - QDialog 位于每个应用程序之上
- django - 注销时出现 ValueError,注销未返回 HttpResponse 对象
- amazon-web-services - 无法使用 terraform 将 ec2 实例注册到 ECS
- javascript - 如何在 JavaScript 中发布新的 formData
- javascript - 将时间添加到字符串数据/时间