Control de Props en React: Comunicación entre Componentes Padres e Hijos
Clase 3 de 31 • Curso de React Avanzado
Resumen
El patrón de control props permite a un componente padre manejar el estado de un componente hijo, facilitando una comunicación controlada entre ambos. Esto resulta especialmente útil para gestionar estados y personalizar comportamientos. En esta lección, veremos un ejemplo práctico de un toggle controlado por el padre, y exploraremos sus beneficios para la reutilización y flexibilidad del código.
¿Cómo se configura un componente hijo con control props?
- Creamos el componente hijo (Toggle) que incluye:
- Una prop
isToggle
, que indica si el estado inicial es true o false. - Una prop
onToggle
, función para notificar al padre sobre el cambio de estado.
- Una prop
- Definimos el tipo de datos (TypeScript) para estas props, donde:
isToggle
es un booleano opcional.onToggle
es una función que acepta un booleano y no retorna ningún valor.
- Añadimos el uso de
React.FunctionalComponent
y asignamos estas props como parámetros del componente.
¿Cómo implementamos el estado interno del toggle?
- Establecemos un estado local
internalToggle
en el componente hijo utilizandouseState
.- El estado inicial toma el valor de
isToggle
. - Creamos una función
toggle
para alternar entre true y false. - Validamos si
onToggle
fue pasada como prop; si es así, se ejecuta para notificar al padre.
- El estado inicial toma el valor de
- Renderizamos un botón que:
- Cambia su estado al hacer clic.
- Muestra un mensaje que varía según el estado (
On
oOff
).
¿Cómo comunica el estado el componente hijo al componente padre?
- En el componente padre:
- Llamamos al componente hijo (Toggle) y pasamos las props
isToggle
yonToggle
. - Creamos un estado local en el padre (
toggleState
) conuseState
, inicializado en false. - Pasamos
toggleState
ysetToggleState
al hijo para sincronizar el estado entre ambos. - Añadimos un mensaje en el padre que refleja el estado actual del toggle.
- Llamamos al componente hijo (Toggle) y pasamos las props
¿Qué beneficios aporta el uso de control props?
- Gestión centralizada del estado: El padre controla el estado del hijo, simplificando la lógica de la aplicación.
- Comunicación padre-hijo: Facilita la transmisión de información en una única dirección, lo cual es esencial para manejar estados en aplicaciones complejas.
- Reutilización de código: El componente hijo se puede utilizar en otros contextos, manteniendo el control desde el padre.
- Flexibilidad y personalización: La lógica de estado del hijo es fácilmente adaptable para diferentes casos de uso.