当前位置: 首页 > article >正文

nextJs在DOM视图中渲染未转为状态值的localStorage导致报错

报错但不限于如下:

error: hydration failed because the initial ui does not match what was rendered on the server.

Did not expect server HTML to contain a <span> in <div>.

hook.js:608 warning: expected server html to contain a matching <img> in <span>.

Unhandled Runtime Error[](https://nextjs.org/docs/messages/react-hydration-error "Go to related documentation")[](https://nextjs.org/docs/app/building-your-application/configuring/debugging#server-side-code "Learn more about enabling Node.js inspector for server code with Chrome DevTools") Hydration failed because the server rendered HTML didn't match the client. As a result this tree will be regenerated on the client. This can happen if a SSR-ed Client Component used:

问题代码:

"use client"

import * as React from "react"

export default function Page() {

    let msg = ""
    if (typeof window !== 'undefined') {
        msg = window.localStorage.getItem("msg") ?? ""
    }

    return (
        <>
            <h1>demo page</h1>
            {msg}
        </>
    )
}

正确代码

"use client"
import * as React from "react"

export default function Page() {

    const [msg, setMsg] = React.useState("")

    React.useEffect(() => {
        setMsg(window.localStorage.getItem("msg") ?? "")
    }, [])

    return (
        <>
            <h1>demo page</h1>
            {msg}
        </>
    )
}

http://www.kler.cn/a/582794.html

相关文章:

  • mac 被禁用docker ui后,如何使用lima虚拟机启动docker
  • 【实战ES】实战 Elasticsearch:快速上手与深度实践-8.1.2近似最近邻(ANN)算法选型
  • 【Synchronized】不同的使用场景和案例
  • 信号处理之插值、抽取与多项滤波
  • 【C++】C++11新特性
  • ELK traceId 通过A服务调用B服务举例
  • Hive SQL 精进系列:COALESCE 手册
  • 跨境电商IP安全怎么做?从基础到高级防护的实战经验分享
  • 信息学奥赛c++语言:整数去重
  • idea maven 编译报错Java heap space解决方法
  • 华为欧拉操作系统安装Docker服务
  • 基于 GEE 利用 Sentinel-2 数据反演叶绿素与冠层水分含量
  • Android Glide 的显示与回调模块原理源码级深度剖析
  • Vue+Node.js+MySQL+Element-Plus实现一个账号注册与登录功能
  • FPGA 实现 OV5640 摄像头视频图像显示
  • 如何制作Windows系统盘、启动盘?(MediaCreationTool_22H2)
  • Banana Pi 与瑞萨电子携手共同推动开源创新:BPI-AI2N
  • Java 大视界 -- Java 大数据在智能安防视频摘要与检索技术中的应用(128)
  • 【数据结构】-- LinkedList与链表(1)
  • MySQL数据库复杂的增删改查操作