undefined не является объектом, оценивающим '_ usecontext.user' - PullRequest
0 голосов
/ 05 августа 2020

Я получаю эту ошибку в большом приложении React. На самом деле я выставляю это на выставке. Может ли кто-нибудь разглядеть и предложить решение. Пожалуйста, помогите «undefined не является объектом, оценивающим '_ usecontext.user'»

import React, { useState } from "react";
import { StyleSheet, Image } from "react-native";
import * as Yup from "yup";

import Screen from "../components/Screen";
import {
  ErrorMessage,
  Form,
  FormField,
  SubmitButton,
} from "../components/forms";
import authApi from "../api/auth";
import useAuth from "../auth/useAuth";

const validationSchema = Yup.object().shape({
  email: Yup.string().required().email().label("Email"),
  password: Yup.string().required().min(4).label("Password"),
});

function LoginScreen(props) {
  const auth = useAuth();
  const [loginFailed, setLoginFailed] = useState(false);

  const handleSubmit = async ({ email, password }) => {
    const result = await authApi.login(email, password);
    if (!result.ok) return setLoginFailed(true);
    setLoginFailed(false);
    auth.logIn(result.data);
  };
//not full code here
}

# auth. js (AuthApi) #

mport client from "./client";

const login = (email, password) => client.post("/auth", { email, password });

export default {
  login,
};

# useAuth #

import { useContext } from "react";
import jwtDecode from "jwt-decode";

import AuthContext from "./context";
import authStorage from "./storage";

export default useAuth = () => {
  const { user, setUser } = useContext(AuthContext);

  const logIn = (authToken) => {
    const user = jwtDecode(authToken);
    setUser(user);
    authStorage.storeToken(authToken);
  };

  const logOut = () => {
    setUser(null);
    authStorage.removeToken();
  };

  return { user, logIn, logOut };
};

# AuthContext #

import React from "react";

const AuthContext = React.createContext();

export default AuthContext;

Скажите, если вам нужно больше кода. Пожалуйста, помогите

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...