使用create-next-app创建Next.js TS项目后启动报错:Cannot read 'useContext'
无法运行全新Next.js TypeScript项目:TypeError: Cannot read properties of null (reading 'useContext')
我通过命令npx create-next-app project-name --ts创建了一个Next.js项目,未修改任何初始代码的情况下运行npm run dev,出现如下错误:
Server Error TypeError: Cannot read properties of null (reading 'useContext') This error happened while generating the page. Any console logs will be displayed in the terminal window. Call Stack Object.useContext file:///X:/.Programming/jukify_next/node_modules/react/cjs/react.development.js (1618:21) useContext node_modules\next\dist\pages\_document.js (707:105) renderWithHooks file:///X:/.Programming/jukify_next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (5658:16) renderIndeterminateComponent file:///X:/.Programming/jukify_next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (5731:15) renderElement file:///X:/.Programming/jukify_next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (5946:7) renderNodeDestructiveImpl file:///X:/.Programming/jukify_next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (6104:11) renderNodeDestructive file:///X:/.Programming/jukify_next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (6076:14) finishClassComponent file:///X:/.Programming/jukify_next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (5688:3) renderClassComponent file:///X:/.Programming/jukify_next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (5696:3) renderElement file:///X:/.Programming/jukify_next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (5943:7) renderNodeDestructiveImpl file:///X:/.Programming/jukify_next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (6104:11) renderNodeDestructive file:///X:/.Programming/jukify_next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (6076:14) renderContextProvider file:///X:/.Programming/jukify_next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (5920:3) renderElement file:///X:/.Programming/jukify_next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (6017:11) renderNodeDestructiveImpl file:///X:/.Programming/jukify_next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (6104:11) renderNodeDestructive file:///X:/.Programming/jukify_next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (6076:14) renderContextProvider file:///X:/.Programming/jukify_next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (5920:3) renderElement file:///X:/.Programming/jukify_next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (6017:11) renderNodeDestructiveImpl file:///X:/.Programming/jukify_next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (6104:11) renderNodeDestructive file:///X:/.Programming/jukify_next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (6076:14) retryTask file:///X:/.Programming/jukify_next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (6528:5) performWork file:///X:/.Programming/jukify_next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (6576:7) <unknown> file:///X:/.Programming/jukify_next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (6902:12) scheduleWork file:///X:/.Programming/jukify_next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (77:3) startWork file:///X:/.Programming/jukify_next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (6901:3) <unknown> file:///X:/.Programming/jukify_next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (6996:5) new Promise <anonymous> Object.renderToReadableStream file:///X:/.Programming/jukify_next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (6949:10) renderToString file:///X:/.Programming/jukify_next/node_modules/next/dist/server/render.js (63:55) <unknown> file:///X:/.Programming/jukify_next/node_modules/next/dist/server/render.js (886:112) NextTracerImpl.trace file:///X:/.Programming/jukify_next/node_modules/next/dist/server/lib/trace/tracer.js (65:20) Object.renderToHTML file:///X:/.Programming/jukify_next/node_modules/next/dist/server/render.js (886:57) async doRender file:///X:/.Programming/jukify_next/node_modules/next/dist/server/base-server.js (936:34) async cacheEntry1.responseCache.get.incrementalCache.incrementalCache file:///X:/.Programming/jukify_next/node_modules/next/dist/server/base-server.js (1059:28) async file:///X:/.Programming/jukify_next/node_modules/next/dist/server/response-cache/index.js (83:36)
我并没有在代码中使用useContext,且更换其他设备创建新项目仍会出现相同问题。
可行排查方案
- 检查Node.js版本:确保使用Next.js官方推荐的LTS版本(如18.x、20.x),版本过高或过低可能引发兼容性问题
- 清理依赖与缓存:删除
node_modules、.next文件夹,清空npm缓存后重新安装依赖rm -rf node_modules .next npm cache clean --force npm install - 指定稳定版本创建项目:如果是最新版Next.js的bug,尝试用指定版本初始化项目,例如:
npx create-next-app@13.4.0 project-name --ts - 重置全局
create-next-app:全局安装的脚手架可能存在问题,卸载后重新安装npm uninstall -g create-next-app npm install -g create-next-app - 关闭实验性配置:若项目默认启用了实验性特性,在
next.config.js中关闭相关选项
内容的提问来源于stack exchange,提问作者emhossein
相关产品推荐
相关产品推荐

