我用的是next.js 14.我想把我所有的tr个标签都包装在Link中.但这样做会导致水合错误.

我可以做大约onclick={()=>doThing()}个,但在这种情况下,我必须使我的组件成为客户端.(我几乎不想这么做)

以下是最低限度的可重现代码:

import Link from "next/link";

export default function Home() {
  return (
    <table>
      <thead>
        <tr>
          <th>First Name</th>
          <th>Last Name</th>
        </tr>
      </thead>
      <tbody>
        <Link href="#">
          <tr>
            <th>John</th>
            <td>Williums</td>
          </tr>
        </Link>
      </tbody>
    </table>
  );
}

Error I get: Hydration Error

推荐答案

首先为table创建另一个组件,并将其命名为Table 然后在Home组件中,你必须导入这个组件dyanmic和ssr false,就像这个例子:

import dynamic from 'next/dynamic'
const Table = dynamic(() => import('./table'), { ssr: false })
export default function Home() {
  return (
      <Table />
   );
}

Reactjs相关问答推荐

全局上下文挂钩-替代不起作用

为什么VScode中的React应用程序无法识别文件夹 struct ?

父组件更新后不重新呈现子组件

包装组件可以避免子组件重新渲染.?

以下代码是否存在安全问题?

Reaction Hook';useEffect&;有条件呼叫问题:

如何在物料界面react 的多选菜单中设置最大 Select 数限制

我发送的 prop 的值不会改变.如果成功登录,导航栏中的 prop 必须为 true.我从后端得到 200 ok

Yup.number().integer() 不将 1.0 视为小数,如何解决这个问题?

在React Router 6中,在路由渲染后更新路由数据

React - 使用 useEffect 还是直接在 onChange 方法中更改值对性能最好?

如何实现 redux 工具包来注册用户?

类型错误:类型typeof import(js-cookie)上不存在属性get

在 React 中将路径与查询变量匹配

如何从 React Redux store 中删除特定项目?

getAttribute 函数并不总是检索属性值

如何修复 Next.js 13 中类型 AppRouterInstance 上不存在 x?

如何使用 React Router 在 React 中正确同步 useEffect 和 useLocation 挂钩?

Axios 删除在带有授权令牌的react js 中不起作用

React Router 6,一次处理多个搜索参数