avatar

sunday

Sunday's Blog

  • 首页
Home 解决nextjs15使用useLocalStorage报错的问题
文章

解决nextjs15使用useLocalStorage报错的问题

Posted 2025-03-27 Updated 2025-03- 27
By sunday
3~4 min read

已经在组件中使用"use client"声明了,还是报错,错误如下:

Unhandled Runtime Error
Error: useLocalStorage is a client-only hook

1.解决方案1-使用 dynamic 导入

import dynamic from 'next/dynamic'
const useLocalStorageComponentNoSSR = dynamic(() => import('./useLocalStorage-component'), {
    ssr: false
})

export default useLocalStorageComponentNoSSR

2.再封装一层,判断是否在客户端环境

写一个ClientOnly组件

"use client";

import React from 'react';
import { useIsClient } from "@uidotdev/usehooks"

type ClientOnlyProps = {
    children: React.ReactNode;
};

export const ClientOnly: React.FC<ClientOnlyProps> = ({ children }) => {
    const isClient = useIsClient();

    // Render children if on client side, otherwise return null
    return isClient ? <>{children}</> : null;
};

然后在page中使用


import { ClientOnly } from "@/components/ClientOnly";
import { UseLocalStorageComponent } from "@/components/useLocalStorage-component";
export default function Page(){
    return (
      <ClientOnly>
         <UseLocalStorageComponent/>       
      </ClientOnly>)
}

nextjs, 疑难杂症
疑难杂症 nextjs
License:  CC BY 4.0
Share

Further Reading

May 3, 2025

nextjs15使用better-sqlite3的连接报错问题

1.出现如下错误 ⨯ Error: Could not locate the bindings file. Tried: 解决方法 我是使用pnpm包管理器,执行以下操作 首先安装node-gyp pnpm i node-gyp -D 然后执行 pnpm approve-builds 执行后会

Apr 6, 2025

nextjs + clerk + supabase + realtime 实时监听数据库更改

1.开启realtime.messages策略 在supabase的SQL Editor执行以下命令 create policy "Enable all access for authenticated users" on "public"."messages" as PERMISSIVE for

Mar 27, 2025

解决nextjs15使用useLocalStorage报错的问题

已经在组件中使用"use client"声明了,还是报错,错误如下: Unhandled Runtime Error Error: useLocalStorage is a client-only hook 1.解决方案1-使用 dynamic 导入 import dynamic from 'nex

OLDER

mac上使用nodejs appium控制chrome浏览器

NEWER

nextjs + clerk + supabase + realtime 实时监听数据库更改

Recently Updated

  • nextjs15使用better-sqlite3的连接报错问题
  • nextjs + clerk + supabase + realtime 实时监听数据库更改
  • 解决nextjs15使用useLocalStorage报错的问题
  • mac上使用nodejs appium控制chrome浏览器
  • 2024年终总结

Trending Tags

nginx acme 强制跳转HTTPS nodejs 代理 mac 神器 vue3 工具 docker

Contents

©2025 sunday. Some rights reserved.

Using the Halo theme Chirpy