Trabajando con React Context y Hooks, estoy creando un proveedor llamado AuthProvider y desde useAuth Hook llamo a ese contexto para trabajar con él. Tengo un componente llamado Login en el que llamo a mi Hook para acceder al AuthProvider de la siguiente manera:
import useAuth from '../hooks/useAuth' const Login = () => { const { hello } = useAuth() console.log(hello); ...En AuthContext tengo la variable "hola" que paso a los hijos de mi contexto.
Proveedor de autenticación:
const AuthContext = createContext() const AuthProvider = ({children}) => { const hello= 'hello' return ( <AuthContext.Provider value={{ hello }}> {children} </AuthContext.Provider> ) } export { AuthProvider } export default AuthContextUseAuth gancho:
import { useContext } from "react"; import AuthContext from "../context/AuthProvider"; const useAuth = () => { return useContext(AuthContext) } export default useAuthY este es el error:
Uncaught TypeError: Cannot read properties of undefined (reading 'hello')El problema es que el componente que usa el contexto pero no estaba envuelto en un proveedor de contexto
Para solucionarlo, envuelva el componente o el componente raíz que tiene el componente como elemento secundario en un proveedor de contexto
<AuthProvider> <Login /> </AuthProvider>