2

我是 Svelte 的新手,我正在尝试将一些信息设置到 sessionStorage 中,但它正在抛出“未定义 sessionStorage”。我意识到我收到了这个错误,因为它在服务器端运行。

我在/src/components/nav.svelte创建了一个使用/src/domain/auth/service.js的组件,错误发生在最后一个。

在网上搜索我发现在这种情况下我必须在onMount函数中使用sessionStorage 。那是正确的方法吗?

我怎样才能避免我的代码变得有点混乱?

4

2 回答 2

8

嘿,你需要使用 onMount

import { onMount } from 'svelte';

onMount(() => {
    sessionStorage.setItem('myWork', 'Developer');
});
于 2019-09-28T09:01:53.277 回答
2

您可以尝试检查您是否真的在浏览器环境中,例如

if (window && window.sessionStorage) {
    // do your stuff with sessionStorage
}

或者

if (typeof window !== 'undefined') {
    // do your stuff with sessionStorage
}
于 2019-06-13T12:49:53.923 回答