Vae*_*tus 2 svelte svelte-store svelte-3
我正在制作一个模态,其属性存储在商店中。而不是像这样打开它,从一个元素:on:click={() => $modal.isOpen = true}
我想这样打开它:
on:click={() => $modal.toggle()}
从一个元素。
这是我的代码:
export const modal = writable({
isOpen: false,
title: 'Title',
content: 'Content',
toggle: () => {
console.log(modal)
modal.set({ ...modal, isOpen: true });
}
});
Run Code Online (Sandbox Code Playgroud)
当我登录时modal
,它只记录set, subscribe, update
方法。然后当我再次单击时,这些方法消失了:它正确地覆盖了它们,似乎我永远无法获得模态的初始化状态。我尝试使用this
或参数 ( (a, b) =>
)访问当前对象,但都没有返回任何内容。
传递给的参数writable
只包含数据,不包含方法。要创建自定义商店,请按照本教程进行操作- 创建您自己的商店工厂,该工厂包装writable
:
const toggleable = initial => {
const store = writable(initial);
return {
...store,
toggle: () => store.update(n => !n)
};
};
const modal = toggleable(false);
Run Code Online (Sandbox Code Playgroud)
演示在这里:https : //svelte.dev/repl/682ef8309f924ba7ad8de1e2f5069988?version=3.12.1
归档时间: |
|
查看次数: |
1335 次 |
最近记录: |