当前位置: 首页 > 知识库问答 >
问题:

不能在顶层调用React挂钩“useState”

贲骏喆
2023-03-14

我是反应的初学者。我试图将我的数据库的值从一个文件发送到另一个使用反应挂钩,并得到以下错误有人能帮我吗?

第5:41行:不能在顶层调用React钩子“useState”。必须在React函数组件或自定义React钩子函数React钩子/钩子规则代码中调用React钩子:

import React, {useState, useEffect} from "react";

import Axios from "axios";

const [collegeList, setcollegeList]=useState([]);
useEffect(()=>{
    Axios.get("http://localhost:3001/api/get").then((response)=>{
        setcollegeList(response.data);
    });
}, []);

CollegeList = collegeList;
export default CollegeList;

共有1个答案

谷梁波
2023-03-14

您必须在反应组件中使用反应挂钩。我可以向你推荐两种方法来解决这个问题。

首先)在组件中执行此操作

import React, {useState, useEffect} from "react";
import Axios from "axios";

function CollegeListComponent() {
const [collegeList, setcollegeList]=useState([]);

useEffect(()=>{
    Axios.get("http://localhost:3001/api/get").then((response)=>{
        setcollegeList(response.data);
    });
}, []);

return "YOUR VIEW ELEMENTS"

第二)使用它作为反应钩

import React, {useState, useEffect} from "react";
import Axios from "axios";

// making a custom react hook like this
function useCollegeList() {
   const [collegeList, setcollegeList]=useState([]);

   useEffect(()=>{
       Axios.get("http://localhost:3001/api/get").then((response)=>{
           setcollegeList(response.data);
       });
   }, []);

return { collegeList }

然后您可以在组件中导入useCollegeList以使用它

 类似资料:
  • 我在读《新概念》。我遇到了一条规则,上面说。在这里,他们提供了解释链接。 我明白他们想说什么,但我不能得到确切的原因,比如为什么我不能在if-else块中使用useffect? 还有一种说法 useState每次都是不同的调用,每次都可以返回新的“[state,setState]”,所以这里有什么困难知道谁调用了哪个useState?

  • 获取以下错误。请帮忙。第9:36行:不能在类组件中调用React钩子“useContext”。必须在React函数组件或自定义React钩子函数中调用React钩子。React钩子/钩子规则第9:47行:“AccountContext”未定义未定义未定义第126:37行:“switchToSignup”未定义未定义未定义 搜索关键字以了解有关每个错误的更多信息。

  • 摘要 在Mongoose中有一个post findOneAndUpdate钩子,在这个钩子里面我需要查询数据库。我正试图在另一个模型上执行。find(),但是每次我都得到以下错误: 误差

  • 得到以下错误。请帮帮这个。第9:36行:React钩子“useContext”不能在类组件中调用。React钩子必须在React函数组件或自定义React钩子函数react-hooks/rules-of-hooks第9:47行:“AccountContext”未定义no-undef第126:37行:“switch tosignup”未定义no-undef

  • 问题内容: 我刚刚阅读了React的新功能挂钩。了解有关钩子的信息, 但我无法使用它。它给我错误。 我目前正在使用16.6.0版 终于我明白了钩子。 我导入为Fun并在app.js文件中使用 我犯的错误是我没有安装React v16.7.0-alpha,所以我使用npm安装了add react @ next react-dom @ next。 谢谢 问题答案: 编辑: 挂钩是16.8.0版的一部分