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

Next.js 13.5.4创建路由时出现默认导出非React组件运行时错误

解决Next.js App Router中"/dashboard"页面默认导出非React组件报错

报错信息

未处理的运行时错误
错误:页面"/dashboard"的默认导出不是React组件

调用栈
ew
/Users/mac/Documents/nextjs/rico_sub/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js (13:19957)
async
/Users/mac/Documents/nextjs/rico_sub/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js (13:20643)
async ew
/Users/mac/Documents/nextjs/rico_sub/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js (13:20409)
async
/Users/mac/Documents/nextjs/rico_sub/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js (13:20643)
async ew
/Users/mac/Documents/nextjs/rico_sub/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js (13:20409)
async O
/Users/mac/Documents/nextjs/rico_sub/node_modules/next/dist/compiled/next-server/app-page.runtime.dev.js (13:25264)

排查与解决方法

  • 检查默认导出规则
    确保app/dashboard/page.tsx中的组件是默认导出,而非命名导出。正确示例:
export default function Dashboard() {
  return <div>仪表盘页面</div>;
}

避免错误的命名导出写法:

// 错误:Next.js不会将命名导出识别为页面组件
export function Dashboard() {
  return <div>仪表盘页面</div>;
}
  • 确认组件类型有效性
    组件必须是返回JSX的函数,不能是字符串、对象等非函数类型。比如不要出现:
// 错误:导出内容不是React组件
export default "Dashboard Page";

若使用异步组件,确保是React Server Component;如果是客户端组件,需用Suspense包裹异步逻辑。

  • 校验文件路径与命名
    确认页面文件严格命名为page.tsx(或.jsx),且位于app/dashboard/目录下。注意文件名大小写(Linux环境区分大小写),避免拼写错误。

  • 检查客户端组件指令
    如果是客户端组件,'use client'指令必须是文件第一行有效代码(不能有前置注释或空行):

'use client';

export default function Dashboard() {
  return <div>客户端仪表盘页面</div>;
}
  • 清除缓存并重启服务
    执行以下命令清除Next.js缓存后重启开发服务器:
rm -rf .next
npm run dev

内容的提问来源于stack exchange,提问作者Frank Ndagula

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 23:25:03