我是 Svelte 的新手,我正在尝试将一些信息设置到 sessionStorage 中,但它正在抛出“未定义 sessionStorage”。我意识到我收到了这个错误,因为它在服务器端运行。
我在/src/components/nav.svelte创建了一个使用/src/domain/auth/service.js的组件,错误发生在最后一个。
在网上搜索我发现在这种情况下我必须在onMount函数中使用sessionStorage 。那是正确的方法吗?
我怎样才能避免我的代码变得有点混乱?
嘿,你需要使用 onMount
import { onMount } from 'svelte';
onMount(() => {
sessionStorage.setItem('myWork', 'Developer');
});
您可以尝试检查您是否真的在浏览器环境中,例如
if (window && window.sessionStorage) {
// do your stuff with sessionStorage
}
或者
if (typeof window !== 'undefined') {
// do your stuff with sessionStorage
}