Next JS 在 React Client Manifest 中找不到模块

问题描述 投票:0回答:1

我有一个自定义的

Accordion
组件,它接受
AccordionItem
组件。两者都是客户端组件!

在 AccordionItem.tsx 文件中,我不仅导出组件,还导出标题和正文部分的命名空间......如下所示:

"use client"

/// some code

export default AccordionItem ...

export namespace AccordionItem {
    export function Header({...
        
          // code
         
        export function Body({...
}

当我使用此组件时,NextJS 会抛出以下错误未处理的运行时错误

错误:在 React 客户端清单中找不到模块“//components/accordion/AccordionItem.tsx#AccordionItem#Header”。这可能是 React Server Components 捆绑器中的一个错误。

该组件适用于任何常规 React 项目,但不适用于 Next JS 14.2.12

搜索了一段时间后,遇到了一个 github 问题,有人建议在使用 Accordion/AccordionItem 的组件上简单地使用

"use client"
,即使它“修复”了问题......它使我的组件在客户端呈现,这是我不想要的。

有人知道更好的解决方法吗?还是我们只能等待下一个团队?

相关信息

  • NextJS 14.2.12
  • 成帧器运动 11.5.5
  • 打字稿5
next.js nextjs14
1个回答
0
投票

要解决此问题而不在客户端渲染整个组件,请尝试将交互部分(如标题和正文)分离为不同的客户端组件。仅在这些组件中使用“使用客户端”。这样,组件的其余部分可以保留在服务器端。

© www.soinside.com 2019 - 2024. All rights reserved.