You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Next.js中使用表格为何触发Hydration Error?

问题原因分析

HTML规范里,浏览器会自动给<table>内直接放置的<tr>标签套一层<tbody>。但你的组件直接在<table>下写<tr>,服务器端渲染的HTML里没有显式的<tbody>,客户端浏览器解析时却会自动补上这个标签,导致服务器渲染的初始UI和客户端hydrate后的DOM结构不一致,触发了Hydration失败错误。

修复方法

显式给表格添加<thead>和<tbody>标签,明确划分表头和数据行的结构,让服务器和客户端渲染的DOM结构完全匹配:

import React from 'react'
import {useState} from 'react'


const port = () => {
  return (
    <div className="ml-14">
      <div className="profile">
        <h1 className="mt-5 font-bold">Nasvirat</h1>
        <p className="mt-5">total balance : </p>
      </div>
      <div className="portfolio">
        <h2 className="mt-7">Holding</h2>

        <table>
          <thead>
            <tr>
              <th>Firstname</th>
              <th>Lastname</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td>Peter</td>
              <td>Griffin</td>
            </tr>
            <tr>
              <td>Lois</td>
              <td>Griffin</td>
            </tr>
          </tbody>
        </table>
      </div>
    </div>
  )
}

export default port

内容的提问来源于stack exchange,提问作者Nas virat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 09:15:36