如何在Svelte中修复“未定义sessionStorage”?

时间:2019-06-11 22:17:04

标签: svelte sapper

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

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

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

如何避免我的代码有些混乱?

2 个答案:

答案 0 :(得分:0)

您可以尝试检查您是否确实在浏览器环境中,例如像

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

if (typeof window !== 'undefined') {
    // do your stuff with sessionStorage
}

答案 1 :(得分:0)

嘿,您需要使用onMount

import { onMount } from 'svelte';

onMount(() => {
    sessionStorage.setItem('myWork', 'Developer');
});