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

自定义Hook实现API请求报错:TypeError: Cannot read properties of null (reading 'useState')

解决TypeError: Cannot read properties of null (reading 'useState')错误

可能的原因及解决办法

1. 违反React Hook调用规则

Hook必须在React函数组件的顶层或其他自定义Hook的顶层调用,禁止在普通函数、条件判断、循环嵌套里调用useFetch。

错误示例:

// 错误:在普通函数内调用Hook
function fetchData() {
  const { data } = useFetch('users');
}

正确示例:

// 正确:在React函数组件顶层调用
function UserList() {
  const { data } = useFetch('users');
  
  return <div>{data && JSON.stringify(data)}</div>;
}

2. 在Next.js服务器组件中调用客户端Hook

Next.js 12默认组件为服务器组件,而useState、useEffect属于客户端Hook,无法在服务器组件中使用。需将调用useFetch的组件标记为客户端组件:

在组件文件顶部添加:

'use client';

示例:

'use client'; // 标记为客户端组件
import { useFetch } from '../hooks/useFetch';

function UserList() {
  const { data } = useFetch('users');
  
  return <div>{data && JSON.stringify(data)}</div>;
}

3. 检查依赖完整性

若上述方法无效,可尝试重置依赖:

rm -rf node_modules package-lock.json
npm install

你的useFetch代码逻辑本身无问题,错误根源在于调用Hook的场景不符合规则或Next.js组件类型限制。

内容的提问来源于stack exchange,提问作者Cláudio Vitor Dantas

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 15:15:46