【发布时间】:2021-11-18 23:00:42
【问题描述】:
我有一个 axios 配置文件,我在该文件中调用 react hook {Auth Context},目的是在反应上下文 api 中获取令牌。但我得到了这样的错误 “React Hook 'useAuth' 不能在顶层调用。必须在 React 函数组件或自定义 React Hook 函数中调用 React Hooks”
AuthContext.js
import React, { useContext, createContext, useState } from "react";
const AuthContext = createContext();
export function useAuth() {
return useContext(AuthContext);
}
export function AuthProvider({ children }) {
const [currentToken, setCurrentToken] = useState("");
const [isAuth, setIsAuth] = useState(false);
function login(token) {
setCurrentToken(token);
setIsAuth(true);
}
const value = {
login,
currentToken,
isAuth,
};
return <AuthContext.Provider value={value}>{children}</AuthContext.Provider>;
}
和我的 axios 配置文件是这样的
AxiosConfig.js
import axios from "axios";
import { useAuth } from "./AuthContext";
const { currentToken } = useAuth(); //my Reeact Context
export default axios.create({
baseURL: "http://127.0.0.1:8000",
headers: {
"Content-type": "application/json",
Authorization: `Bearer ${currentToken}`,
},
});
实现该目标的最佳方法是什么?
提前谢谢你
【问题讨论】:
标签: reactjs axios react-hooks