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