我试图学习自定义钩子下面的教程在w3schools,但我在stackblitz得到下面的错误. 你能让我知道如何修复它.提供代码和小提琴下面.我google了一下,还是没有运气.

`/~/src/useFetch.js中的错误(3:18) 未定义的模块未声明为系统.注册器动态依赖项https://react-6tdyn9.stackblitz.io/~/src/useFetch.js

https://stackblitz.com/edit/react-6tdyn9?file=src%2Findex.js,src%2FuseFetch.js,src%2FApp.js

https://www.w3schools.com/react/react_customhooks.asp

mport { useState,useEffect } from react;

const useFetch = () => {

  const [data, setData] = useState(null);

  useEffect (() =>{
    fetch(url)
    .then((res) => res.json())
    .then((data) => setData(data));

  }, [url]);

  return [data];

};

export default useFetch;

推荐答案

你的代码中有几个问题.首先,import React语句应该是字符串.

import { useState, useEffect } from "react"; // Like this

接下来,您的钩子中缺少url参数.你似乎错误地在useEffect号公路上错过了.

const useFetch = (url) => {  // ==> Add Url Parameter here

  const [data, setData] = useState(null);

  useEffect (() =>{
    fetch(url)
    .then((res) => res.json())
    .then((data) => setData(data));

  }, [url]);

  return [data];

};

Javascript相关问答推荐

当没有固定间隔时,是否可以在d3.js中进行画笔捕捉?

如何在我的Web应用程序中使用JavaScript显示和隐藏喜欢/不喜欢按钮?

HTML/JavaScript函数未执行

如何在ReactJS中修复这种不需要的按钮行为?

JavaScript文本区域阻止KeyDown/KeyUp事件本身上的Alt GR +键组合

为什么getRecord()会因为与_logger相关的错误而失败?(使用Hedera SDK)

如何在使用fast-xml-parser构建ML时包括属性值?

窗口.getComputedStyle()在MutationObserver中不起作用

Google Apps脚本中的discord邀请API响应的日期解析问题

如何解决CORS政策的问题

Redux查询多个数据库Api reducerPath&

Chrome是否忽略WebAuthentication userVerification设置?""

为什么这个JS模块在TypeScript中使用默认属性导入?""

使用原型判断对象是否为类的实例

第三方包不需要NODE_MODULES文件夹就可以工作吗?

如何防止ionic 输入中的特殊字符.?

令牌JWT未过期

JS Animate()方法未按预期工作

使用jQuery find()获取元素的属性

JAVASCRIPT SWITCH CASE语句:当表达式为';ALL';