jef*_*eff 1 javascript dom window svelte sveltekit
我有一个 svelte 商店,有以下代码
import { writable } from "svelte/store";
import { onMount, onDestroy } from "svelte";
export const modalStore = () => {
const { subscribe, update } = writable({
showModal: false,
});
onMount(() => {
window.addEventListener("keydown", handleKeyDown);
});
onDestroy(() => {
window.removeEventListener("keydown", handleKeyDown);
});
const handleKeyDown = (e: KeyboardEvent) => {
if (e.key === "Escape") {
update(stateObj => ({...stateObj, showModal: false}));
}
}
return {
subscribe,
openModal: () => update(stateObj => ({ ...stateObj, modal: true })),
closeModal: () => update(stateObj => ({ ...stateObj, modal: false })),
handleKeyDown,
}
}
Run Code Online (Sandbox Code Playgroud)
编辑
我通过以下代码访问了商店
let modalState = modalStore();
Run Code Online (Sandbox Code Playgroud)
然后通过$modalState检查状态并通过 modalStore.openModal() 访问该函数;
它抛出 500 错误 - 窗口未定义
我该如何解决?
| 归档时间: |
|
| 查看次数: |
2573 次 |
| 最近记录: |