El hook useContext permite a los componentes consumir un estado global sin necesidad de pasarlo por props.
Es ideal para temas, autenticación, idioma, etc.
createContext.Provider) que envuelve la app y maneja el estado.useContext desde cualquier componente.import React, { createContext, useContext, useState } from 'react';
import { View, Text, Button } from 'react-native';
// Crear el contexto
const TemaContext = createContext();
// Proveedor de contexto
const TemaProvider = ({ children }) => {
const [tema, setTema] = useState('claro');
const cambiarTema = () => {
setTema(temaActual => temaActual === 'claro' ? 'oscuro' : 'claro');
};
return (
<TemaContext.Provider value={{ tema, cambiarTema }}>
{children}
</TemaContext.Provider>
);
}; useContextAhora cualquier componente puede usar useContext para acceder al estado compartido.
const ComponenteTematizado = () => {
const { tema, cambiarTema } = useContext(TemaContext);
return (
<View style={{
backgroundColor: tema === 'claro' ? '#fff' : '#333',
padding: 20
}}>
<Text style={{
color: tema === 'claro' ? '#000' : '#fff'
}}>
Tema actual: {tema}
</Text>
<Button title="Cambiar Tema" onPress={cambiarTema} />
</View>
);
}; Para que el contexto esté disponible en toda la app, envuelve tu componente raíz con el TemaProvider.
const App = () => {
return (
<TemaProvider>
<ComponenteTematizado />
</TemaProvider>
);
};
export default App; El hook useContext es útil cuando:
Si aún tienes dudas sobre cómo trabajar con el hook useEffect, te recomiendo revisar el recurso adicional Ejemplos de Hooks, donde encontrarás ejemplos prácticos que te ayudarán a dominarlo correctamente.
createContext: Crea un nuevo contexto.Provider: Permite envolver componentes y proveer valores globales.useContext: Accede al contexto desde cualquier parte del árbol de componentes.