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

无效的挂钩调用。React.js

范哲
2023-03-14

react 导入 useState,将其粘贴到正文函数,但 react 告诉我错误的使用钩子。虽然另一个钩子像这样工作。

import {getAuth} from 'firebase/auth';
import {useState} from 'react';

const useAuth = () => {

  const [state, setState] = useState(null); //wrong use

  const auth = getAuth();
  const getUserId = () => {
    return new Promise((resolve, reject) => {
      auth.onAuthStateChanged((user) => {
        if (user) {
          resolve(user.uid);
        } else {
          resolve(null);
        }
      });
    });
  };

  return {
    getUserId,
  };
};

export default useAuth;

共有1个答案

郑功
2023-03-14

您返回的getUserId不是jsx。如果您的函数旨在成为一个反应函数组件,那么它应该返回一个jsx。如果不是,那么您就不能使用像useState这样的反应挂钩。

 类似资料:
  • 问题内容: 我是React的新手,现在我想在表中显示一些记录,现在出现此错误。请帮帮我。 无效的挂接调用。挂钩只能在功能组件的主体内部调用。发生这种情况可能是由于以下原因之一:1.您的React和渲染器版本可能不匹配(例如React DOM)2.您可能违反了《胡克规则》 3.您可能在其中包含多个React版本相同的应用程序请参阅有关如何调试和解决此问题的提示。 问题答案: 因为你。在此处查看更多信

  • 我是一个很新的反应,并得到以下错误: 我想在提交表单时使用另一个组件。因此,在文件A中,当表单提交时,is使用一个函数,在调用其他组件之前首先检查某些内容,如: 在组件上,我有一些usstate钩子: 当页面正在加载的时候,我得到了这个错误,有没有人知道什么是错误的?

  • 我第一次面对的问题很小。我试图使用一个简单的useState,但出于某种原因,我不明白为什么React会给我一个错误,不管我想做什么--没有什么能修复它。 这是错误的图像:错误描述: 错误:无效的钩子调用。钩子只能在函数组件的主体内部调用。这可能是由于以下原因之一:1.React和呈现器(例如React DOM)2的版本可能不匹配。你可能违反了钩子3的规则。在同一个应用程序中可能有多个React副

  • 太长,读不下去了如何模拟或使用带有数组的道具强制重置我的组件? 我正在实现一个组件,它显示一个计时器,并在达到零时执行回调。目的是让回调更新对象列表。后一个组件由新的React钩子和组成。 包含对计时器启动时间和剩余时间的引用。设置每秒钟调用一次的间隔,以更新剩余的时间,并检查是否应该调用回调。 该组件并不意味着重新安排计时器,或者在间隔达到零时保持间隔,它应该执行回调并空闲。为了让计时器刷新,我

  • 我在我的react项目中使用apollo graphql,我得到的错误是 无效的钩子调用。钩子只能在函数组件的主体内部调用 这是我的代码 一旦我运行了这个程序,我就得到了错误,我知道useQuery本身就是一个钩子,我不能从内部useEffect调用它,但是接下来应该怎么解决这个问题,因为我需要首先从我的redux状态中获取insuranceId并将其发送到查询。 谢谢

  • 我想使用React在表中显示一些记录,但我得到了这个错误: 无效的挂接调用。钩子只能在函数组件的主体内部调用。这可能是以下原因之一: 您可能有不匹配的React和渲染器版本(如React DOM) 你可能违反了钩子规则 在同一个应用程序中可能有多个React副本,请参阅有关如何调试和修复此问题的提示。