【发布时间】:2019-12-16 00:17:09
【问题描述】:
我在我的一个 React 项目的 Apps.jsx 文件中定义了这个:
... omitted for brevity ...
import {AuthContext, useAuth} from "./context/auth";
function Login (props: RouteComponentProps<TParams>) {
... omitted for brevity ...
const {authTokens, setAuthTokens} = useAuth();
function postLogin() {
const url = 'http://localhost:8000/rest-auth/login/';
const withCredentials = true;
const method = 'post';
const data = {"username": userName, "password": password};
axios.request({url, withCredentials, data, method}).then(
result => {
// console.log('Login.postLogin.else result is :', result);
if (result.status === 200) {
setAuthTokens(result.data);
} else {
setIsError(true);
}
}); // .catch(e => {console.log('Login.postLogin.catch e is :', e); setIsError(true);});
}
我得到一个运行时错误
Unhandled Rejection (TypeError): setAuthTokens is not a function
(anonymous function)
C:/Users/plankton/WebstormProjects/mister-neutron/src/App.tsx:93
90 | result => {
91 | // console.log('Login.postLogin.else result is :', result);
92 | if (result.status === 200) {
> 93 | setAuthTokens(result.data);
| ^ 94 | } else {
95 | setIsError(true);
96 | }
useAuth 声明如下:
import { createContext, useContext } from 'react';
export const AuthContext = createContext();
export function useAuth() {
return useContext(AuthContext);
}
【问题讨论】:
标签: reactjs typescript