现象
用户执行pnpm dev启动项目时,出现TypeError: Cannot read properties of null (reading 'useMemo')报错。报错堆栈显示,错误触发于next-i18next的appWithTranslation.js文件第68行调用useMemo时,后续调用链涉及react-dom服务端渲染相关逻辑,涉及的依赖包版本包括react@18.2.0、next-i18next@14.0.3、next@13.5.2、react-dom@18.2.0。
可能原因
该报错源于next-i18next的高阶组件在调用useMemo时无法读取到有效对象,导致尝试读取useMemo属性失败。可能的相关因素包括:本地node_modules依赖缓存异常、依赖包版本组合冲突,或是项目的i18n初始化配置存在缺失或错误。
排查步骤
- 删除本地nodemodules目录和锁文件,重新安装依赖:执行`rm -rf nodemodules pnpm-lock.yaml && pnpm install`
- 检查项目内与next-i18next相关的初始化配置,确认配置文件完整且格式合规
- 核对当前使用的react、next、next-i18next版本,与报错中提及的react@18.2.0、next@13.5.2、next-i18next@14.0.3版本是否一致
- 重新运行
pnpm dev命令,观察报错是否仍然出现
解决与验证
若报错由依赖缓存异常或版本冲突导致,执行依赖重装后即可解决问题;若为配置问题,修正对应配置后重新启动项目即可。验证标准为成功启动pnpm dev,且未再出现TypeError: Cannot read properties of null (reading 'useMemo')的报错。