reactjs - React:Hook 在函数组件的主体中给出错误
问题描述
我想把我所有的网址放在一个文件中。我需要调用 AuthToken 方法来返回令牌。
当我在内部有 useSelector 挂钩时调用 AuthToken 时,它给了我这个错误:
“无效的钩子调用。只能在函数组件的主体内部调用钩子。”
useSelector 在一个函数中。我不明白为什么我会收到此错误。我该如何解决?
这是我的代码:
import { useSelector } from "react-redux";
import React from "react";
const AuthToken = () => {
const token = useSelector((state: any) => state.facebookAuth.accessToken);
console.log("Token" + token);
return token;
};
const version: string = "v10.0";
const baseURL: string = "https://graph.facebook.com/";
const getUserPagesURL: string = `${baseURL}${version}/me/accounts?access_token=${AuthToken()}`;
export { getUserPagesURL };
解决方案
React 钩子有一个规则:它们只能在组件内部调用。
您调用它的函数不是组件。
例如,如果您在 Form 组件中使用 useSelector ,它将起作用。
推荐阅读
- java - 避免使用 Java 中数据类的继承进行动态类型转换
- php - Microsoft Teams + PHP cURL - 向特定频道发送消息
- javascript - Laravel 数据到 javascript 这可能是不安全的并且是一个开放的漏洞吗?
- python - Google App Engine:使用 keras/tensorflow/flask 加载资源失败
- swift - 使用 SwiftUI 在 Xcode 11 上预览 EXC_BAD_ACCESS、KERN_PROTECTION_FAILURE
- git - 任何想法来控制设置文件?
- scala - 如何将csv文件中可用的列名作为标题分配给orc文件
- mysql - 如何在 vue js 和 Laravel 中显示来自多个表的数据?
- java - 将 SessionFactory 添加到 DAO 导致 java.lang.IllegalStateException: Failed to load ApplicationContext
- android - 当我单击按钮在我的应用程序中注册时,FireBase 中没有任何反应