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

在StackBlitz中使用React自定义Hook报错,求修复方案

修复React自定义Hook在StackBlitz中的依赖错误

问题根源与修复步骤

  • 模块导入语法错误
    useFetch.js中导入React模块时未给react添加引号,这是触发Module undefined依赖错误的直接原因。
    错误代码:

    import { useState,useEffect } from react;
    

    修复后:

    import { useState, useEffect } from 'react';
    
  • 未定义url参数
    自定义Hook中使用了url变量但未声明,需为useFetch添加参数接收外部传入的url,否则useEffect依赖数组中的url会无效。
    错误的函数定义:

    const useFetch = () => {
    

    修复后:

    const useFetch = (url) => {
    
  • 可选优化:添加请求错误处理
    为避免fetch请求失败导致的异常,可在Promise链中增加错误捕获逻辑:

    useEffect(() => {
      fetch(url)
        .then((res) => res.json())
        .then((data) => setData(data))
        .catch((err) => console.error('请求出错:', err));
    }, [url]);
    

完整修复后的useFetch.js代码

import { useState, useEffect } from 'react';

const useFetch = (url) => {
  const [data, setData] = useState(null);

  useEffect(() => {
    fetch(url)
      .then((res) => res.json())
      .then((data) => setData(data))
      .catch((err) => console.error('请求出错:', err));
  }, [url]);

  return [data];
};

export default useFetch;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 22:54:52