安装Next.js项目后,在我的自定义react UI工具包中使用钩子时出现问题

jpfvwuh4  于 2023-06-22  发布在  React
关注(0)|答案(1)|浏览(184)

ui kit vite config for build
我一直在尝试在UI Kit库中使用钩子,但是遇到了一些问题。我尝试过不同的方法,但迄今为止都没有成功。我在我的项目中使用React。如果在其他下一个js项目上安装了ui kit后出现错误TypeError: Cannot read properties of null (reading 'useState'),请有人提供指导,指导如何将hook与Next.js或React正确集成在UI Kit库中?任何帮助或代码示例将不胜感激。
[card组件(使用其他项目)](https://i.stack.imgur.com/csXyk.png
error when use it in other project
react version: 18next.js version: 13

ioekq8ef

ioekq8ef1#

从NextJS 13及更高版本开始,如果您使用的是app目录,则每个页面/组件都默认为服务器组件。
你得到这个错误是因为在服务器组件中我们不能使用钩子。
这个错误的一个解决方案是让你的组件成为一个Client Component,在其中你通过在文件的顶部添加“use client”指令来使用钩子。
示例:

"use client";

import { Card } from "some-library"

function CardLayout() {
   return (
     <div>
       <Card />
       <Card />
       <Card />
     </div>
   )
}

然后在页面中使用此组件。

相关问题