Estoy tratando de autenticar a un usuario y extraer el contexto de otro archivo. Siento que lo que estoy haciendo es bastante sencillo, pero sigo recibiendo el mismo error. ¿Estoy importando useContext mal?
import React, { useContext } from "react"; import { NavigationContainer } from "@react-navigation/native"; import { AppNavigator } from "./app.navigator"; import { AccountNavigator } from "./account.navigator"; import { AuthenticationContext } from "../../services/authentication/authentication.context"; export const Navigation = () => { const { isAuthenticated } = useContext(AuthenticationContext); return ( <NavigationContainer> {isAuthenticated ? <AppNavigator /> : <AccountNavigator />} </NavigationContainer> ); };El Contexto según una solicitud de un usuario a continuación para ayudar a proporcionar más información
import React, { useState, createContext } from "react"; import * as firebase from "firebase"; import { loginRequest } from "./authentication.service"; export const AuthenticationContext = createContext(); export const AuthenticationContextProvider = ({ children }) => { const [isLoading, setIsLoading] = useState(false); const [user, setUser] = useState(null); const [error, setError] = useState(null); const onLogin = (email, password) => { setIsLoading(true); loginRequest(email, password) .then((u) => { setUser(u); setIsLoading(false); }) .catch((e) => { setIsLoading(false); setError(e); }); }; return ( <AuthenticationContext.Provider value={{ user, isLoading, error, onLogin, }} > {children} </AuthenticationContext.Provider> ); };No está pasando nada a la llamada createContext aquí:
export const AuthenticationContext = createContext(); entonces useContext(AuthenticationContext) devolverá undefined . Por lo tanto, arrojará este error cuando intente desestructurar y leer una propiedad isAuthenticated . Parece que necesita que su contexto sea un objeto con una propiedad isAuthenticated .
Puede resultarle útil leer los conceptos básicos del contexto de React aquí , y específicamente sobre useContext aquí .