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

能否在NextJS项目中仅使用命名导出?_app.ts使用遇报错

NextJS 仅使用命名导出处理 _app.ts 的解决方案

首先明确:NextJS 的路由系统(包括 _app.ts、_document.ts 这类特殊页面,以及普通页面路由)必须依赖默认导出的 React 组件,这是框架的核心约定——即便文档未在显眼位置强调,也是路由解析逻辑的硬性要求。

如果你坚持要保留命名导出的写法,可采用折中方案:在文件末尾将命名导出的组件同时作为默认导出,既满足框架要求,又能保留命名导出的使用方式:

import type { AppProps } from 'next/app'

// 保留命名导出
export const App = ({ Component, pageProps }: AppProps) => {
  return <Component {...pageProps} />
}

// 额外添加默认导出,适配NextJS路由规则
export default App

这样处理后,你在项目其他模块中依然可以通过 import { App } from './_app' 进行命名导入,同时 NextJS 路由系统会识别到默认导出的组件,不再抛出错误。

目前 NextJS 并未提供仅使用命名导出作为页面/特殊组件的配置选项,路由解析逻辑优先查找默认导出是框架设计上的固定规则,暂无修改途径。

内容的提问来源于stack exchange,提问作者Lars Flieger

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 04:10:28