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

使用App Router的NextJS执行next build触发useContext空值错误

Next.js App Router 构建报错:TypeError: Cannot read properties of null (reading 'useContext')

问题详情

  • 使用App Router(非Pages Router)开发Next.js应用
  • 执行next build时,根路径/、404、500页面预渲染全部失败
  • 新建空白Next.js模板项目执行构建,仍出现相同错误
  • 需求:生成可部署至Render的构建产物

错误日志

next build
- info Creating an optimized production build  
- info Compiled successfully
- info Linting and checking validity of types  
- info Collecting page data  
[    ] - info Generating static pages (0/4)TypeError: Cannot read properties of null (reading 'useContext')
    at exports.useContext (/home/solomoncurly/code/test2/node_modules/react/cjs/react.production.min.js:24:118)
    at Head (/home/solomoncurly/code/test2/.next/server/pages/_error.js:282:44)
    at Wc (/usr/local/lib/node_modules/next/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js:68:44)
    at Zc (/usr/local/lib/node_modules/next/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js:70:253)
    at Z (/usr/local/lib/node_modules/next/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js:76:89)
    at $c (/usr/local/lib/node_modules/next/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js:78:98)
    at bd (/usr/local/lib/node_modules/next/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js:77:404)
    at Z (/usr/local/lib/node_modules/next/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js:76:217)
    at $c (/usr/local/lib/node_modules/next/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js:78:98)
    at Zc (/usr/local/lib/node_modules/next/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js:71:145)
TypeError: Cannot read properties of null (reading 'useContext')
    at exports.useContext (/home/solomoncurly/code/test2/node_modules/react/cjs/react.production.min.js:24:118)
    at Head (/home/solomoncurly/code/test2/.next/server/pages/_error.js:282:44)
    at Wc (/usr/local/lib/node_modules/next/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js:68:44)
    at Zc (/usr/local/lib/node_modules/next/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js:70:253)
    at Z (/usr/local/lib/node_modules/next/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js:76:89)
    at $c (/usr/local/lib/node_modules/next/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js:78:98)
    at bd (/usr/local/lib/node_modules/next/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js:77:404)
    at Z (/usr/local/lib/node_modules/next/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js:76:217)
    at $c (/usr/local/lib/node_modules/next/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js:78:98)
    at Zc (/usr/local/lib/node_modules/next/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js:71:145)

Error occurred prerendering page "/500". Read more: https://nextjs.org/docs/messages/prerender-error
TypeError: Cannot read properties of null (reading 'useContext')
    at exports.useContext (/home/solomoncurly/code/test2/node_modules/react/cjs/react.production.min.js:24:118)
    at Head (/home/solomoncurly/code/test2/.next/server/pages/_error.js:282:44)
    at Wc (/usr/local/lib/node_modules/next/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js:68:44)
    at Zc (/usr/local/lib/node_modules/next/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js:70:253)
    at Z (/usr/local/lib/node_modules/next/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js:76:89)
    at $c (/usr/local/lib/node_modules/next/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js:78:98)
    at bd (/usr/local/lib/node_modules/next/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js:77:404)
    at Z (/usr/local/lib/node_modules/next/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js:76:217)
    at $c (/usr/local/lib/node_modules/next/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js:78:98)
    at Zc (/usr/local/lib/node_modules/next/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js:71:145)

Error occurred prerendering page "/404". Read more: https://nextjs.org/docs/messages/prerender-error
TypeError: Cannot read properties of null (reading 'useContext')
    at exports.useContext (/home/solomoncurly/code/test2/node_modules/react/cjs/react.production.min.js:24:118)
    at Head (/home/solomoncurly/code/test2/.next/server/pages/_error.js:282:44)
    at Wc (/usr/local/lib/node_modules/next/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js:68:44)
    at Zc (/usr/local/lib/node_modules/next/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js:70:253)
    at Z (/usr/local/lib/node_modules/next/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js:76:89)
    at $c (/usr/local/lib/node_modules/next/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js:78:98)
    at bd (/usr/local/lib/node_modules/next/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js:77:404)
    at Z (/usr/local/lib/node_modules/next/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js:76:217)
    at $c (/usr/local/lib/node_modules/next/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js:78:98)
    at Zc (/usr/local/lib/node_modules/next/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js:71:145)
TypeError: Cannot read properties of null (reading 'useContext')
    at exports.useContext (/home/solomoncurly/code/test2/node_modules/next/dist/compiled/react/cjs/react.production.min.js:28:118)
    at usePathname (/home/solomoncurly/code/test2/.next/server/chunks/256.js:1494:34)
    at ErrorBoundary (/home/solomoncurly/code/test2/.next/server/chunks/256.js:814:50)
    at Je (/usr/local/lib/node_modules/next/dist/compiled/react-dom/cjs/react-dom-server.edge.production.min.js:121:272)
    at Z (/usr/local/lib/node_modules/next/dist/compiled/react-dom/cjs/react-dom-server.edge.production.min.js:128:91)
    at Je (/usr/local/lib/node_modules/next/dist/compiled/react-dom/cjs/react-dom-server.edge.production.min.js:122:9)
    at Je (/usr/local/lib/node_modules/next/dist/compiled/react-dom/cjs/react-dom-server.edge.production.min.js:127:11)
    at Z (/usr/local/lib/node_modules/next/dist/compiled/react-dom/cjs/react-dom-server.edge.production.min.js:128:91)
    at Ke (/usr/local/lib/node_modules/next/dist/compiled/react-dom/cjs/react-dom-server.edge.production.min.js:131:155)
    at Me (/usr/local/lib/node_modules/next/dist/compiled/react-dom/cjs/react-dom-server.edge.production.min.js:130:289)

Error occurred prerendering page "/". Read more: https://nextjs.org/docs/messages/prerender-error
TypeError: Cannot read properties of null (reading 'useContext')
    at exports.useContext (/home/solomoncurly/code/test2/node_modules/next/dist/compiled/react/cjs/react.production.min.js:28:118)
    at usePathname (/home/solomoncurly/code/test2/.next/server/chunks/256.js:1494:34)
    at ErrorBoundary (/home/solomoncurly/code/test2/.next/server/chunks/256.js:814:50)
    at Je (/usr/local/lib/node_modules/next/dist/compiled/react-dom/cjs/react-dom-server.edge.production.min.js:121:272)
    at Z (/usr/local/lib/node_modules/next/dist/compiled/react-dom/cjs/react-dom-server.edge.production.min.js:128:91)
    at Je (/usr/local/lib/node_modules/next/dist/compiled/react-dom/cjs/react-dom-server.edge.production.min.js:122:9)
    at Je (/usr/local/lib/node_modules/next/dist/compiled/react-dom/cjs/react-dom-server.edge.production.min.js:127:11)
    at Z (/usr/local/lib/node_modules/next/dist/compiled/react-dom/cjs/react-dom-server.edge.production.min.js:128:91)
    at Ke (/usr/local/lib/node_modules/next/dist/compiled/react-dom/cjs/react-dom-server.edge.production.min.js:131:155)
    at Me (/usr/local/lib/node_modules/next/dist/compiled/react-dom/cjs/react-dom-server.edge.production.min.js:130:289)
- info Generating static pages (4/4)

> Export encountered errors on following paths:
    /_error: /404
    /_error: /500
    /page: /

解决方法

1. 统一Node.js版本

Next.js要求使用LTS版本的Node.js(推荐18.x或20.x),版本不兼容会导致依赖冲突:

  • 运行node -v查看当前版本,不符合则升级/降级

2. 清理依赖并重新安装

  • 删除node_modules:rm -rf node_modules
  • 删除锁文件:rm package-lock.json(或yarn.lock)
  • 重新安装依赖:npm install
  • 清理Next.js缓存:npx next clean

3. 解决全局与本地Next.js版本冲突

日志显示全局Next.js(/usr/local/lib/node_modules/next)和项目本地依赖路径不一致,导致版本冲突:

  • 卸载全局Next.js:npm uninstall -g next
  • 使用项目本地版本执行构建:npx next build

4. 调整Next.js构建配置

在next.config.js中添加静态导出配置,适配Render部署:

/** @type {import('next').NextConfig} */
const nextConfig = {
  output: 'export',
  experimental: {
    appDir: true, // App Router 必开配置
  },
}

module.exports = nextConfig

5. 确保React与React-Dom版本一致

react和react-dom版本不匹配会引发上下文错误:

  • 检查package.json中两者版本是否相同
  • 若不一致,重新安装指定版本:npm install react@latest react-dom@latest

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 13:04:54