Validar los props en React utilizando PropTypes es una técnica fundamental para fortalecer la calidad y robustez de tu código. Al realizar esta validación, aseguras que los componentes reciban los tipos de datos esperados, ayudando a identificar errores desde temprano y mejorando notablemente la colaboración entre equipos de desarrollo.
¿Qué son los PropTypes en React?
Los PropTypes son una herramienta integrada en los proyectos React y React Native. Sirven para definir claramente el tipo de dato específico que un componente espera recibir mediante sus props. Si se envía un tipo de dato distinto al especificado, React generará una advertencia en consola, facilitando mucho la identificación de problemas.
¿Cómo importar los PropTypes correctamente?
Para empezar a utilizar los PropTypes, simplemente debes importarlos al inicio de tu archivo:
importPropTypesfrom"prop-types";
Esta línea añade la capacidad de validar los props de los componentes.
¿Cómo validar props con PropTypes?
Una vez importado, defines los tipos esperados para cada prop de la siguiente forma:
El prop firstName debe ser un string obligatorio, definido mediante .isRequired.
El prop lastName también es una cadena, pero opcional.
Si alguna prop no cumple con estas condiciones, React emitirá una advertencia que podrás ver tanto en la terminal como en el warning que aparece en la aplicación móvil.
¿Qué sucede si los props no cumplen con los tipos definidos?
Veamos dos casos claros:
Si un prop obligatorio falta, React alertará:
Warning:Failed prop type:The prop `firstName` is marked as required in`Saludar`, but its value is `undefined`.
Si el tipo enviado es incorrecto, React también lo indicará inmediatamente:
Warning:Failed prop type:Invalid prop `lastName`of type `number` supplied to `Saludar`, expected `string`.
Estos mensajes de advertencia indican claramente el error para que puedas corregirlo rápidamente antes de desplegar la aplicación.
¿Por qué debes validar tus props siempre?
Validar props tiene ventajas significativas:
Mejora notablemente la comunicación entre los miembros del equipo.
Reduce errores antes de la fase de producción, evitando molestias a los usuarios finales.
Incrementa la calidad del código que entregas.
Incorporar validaciones con PropTypes es, sin duda, una buena práctica recomendada al construir proyectos sólidos en React y React Native.
¿Has implementado validaciones en tus proyectos? ¡Nos encantaría conocer tu experiencia en los comentarios!
Nuevamente por acá jeje.
Les comparto un pequeño ejemplo en el caso de que utilicen TypeScript como Lenguaje en su proyecto de Expo o RN CLI.
Utilizar TypeScript les permitirá manejar los errores antes de que aparezcan en consola o en la propia View de sus aplicaciones. Esto lo lograrán utilizando Interfaces.
Función tradicional con desestructuración de Props.
importReactfrom'react'import{View,Text}from'react-native'interfaceProps{ firstname?: string,//Propiedad opcionallastname: string,}exportdefaultfunctionAppScreen({firstname='Pepa', lastname}:Props){return(<View><Text style={{fontSize:20,color:'black'}}>Hola, me llamo:{firstname}{lastname}</Text></View>)}
¡Hola! También podríamos usar React.FC (Functional Component) y pasar la interface como tipo.
exportconstAppScreen:React.FC<Props>
Esto nos evita problemas más adelante por si queremos usar el prop children, ya que de otro modo, tendríamos que agregarlo en la interfaz y no sería lo ideal.
Excelente dato, muchas gracias por el aporte.
En vez de usar proptypes, recomiendo fuertemente aprender bien TypeScript y usarlo con toda la potencia que da. De todas maneras como primer paso usar proptypes no está mal
Es innecesario 3 clases de fundamentos basicos de React. Se supone que quien toma este curso ya tiene que saber React porque si no no va a poder hacer nada. El curso es muy corto y fuera mejor que le metieran mas contenido de React Native.
Yo estoy feliz de que repasemos lo basico de react ya que no recuerdo bien react y no tengo tiempo para aprender react otravez
Esta bueno usar propTypes, aunque si usas typescript no será necesario.
//Para lidiar con el error “Unable module prop-types” deberán instalar (en mac)
% yarn add prop-types
En vista de que se recomienda trabajar con Typescript en lugar de PropTypes. El comando para crear un proyecto expo de React Native es
Para aquellos con problemas de Unable to resolve module prop-types en Windows.
npm install --save prop-types
Si alguien esta aquí en 2025 y está usando versión 15 o superior de React, en la versión 15 fueron deprecados los propTypes y a partir de la 19 fueron removidos:
¿Qué diferencia existe entre prop-types y en usar typescript los types o interfaces?
TypeScript es una alternativa a las prop-types
aqui puedes ver más información.
Que mal que el curso este desactualizado. Hay muchas clases con temas que ya estan deprecated. Por otro lado desde marzo la doc de react cambio y no se sabe que sucederá… Ahora en esta clase veo debo estudiar ts…asi que me voy a estudiar tYpescript…y despues no se que hacer…help me!!!
Estos dos cursos estan muy actualizados en cuando a react se refiere:
~ Que tal Platzinauta, ya conectamos en LinkedIn? ~
¡Que estas esperando! Conectemos en LinkedIn, GitHub, Medium, Redes sociales o unete al mejor servidor de Discord sobre Python y ciencia de datos en español.
desde la 0.69 no se recomienda usar proptypes. Lo mejor sería aprender TS.
Buenas tardes, en caso de estar viendo este curso el 2025, hay un par de observaciones que hacer, para que no se queden atascados por errores:
1.- En algunos casos sera necesario instalar el prop-types como?
con este comando en la consola (npm install prop-types)
2.- Al manejar las nuevas versiones de reac-native esta descontinuada la funcion DefaultProps el error resa:
"error warning support for defaultProps will be removed from function components in a future major release USe Javascript parameters instead"
Siendo asi la solucion es facil sacar la funcion e integrar nueva metodologia dej oel codigo como quedaria:
defaultProps = ideal cuando quieres evitar pasar props desde el padre.
isRequired = obliga a pasar la prop sí o sí desde el padre.
Es decir:
Si quieres usar defaultProps, NO marques firstname como obligatorio:
O si quieres que siempre sea obligatorio, entonces deja de usardefaultProps y pásalo siempre desde el componente padre.
Si soy jajaj, yo viendo en 2025 un curso viejo al parecer, pero sirve mil gracias.
La validación de tipos es, en esencia, una primera capa básica de testing que toda app debería tener :)
Chicos del 2025. el Que una herramienta esté “deprecated” no significa que “sirva” o no sirva. En ocasiones, trabajarán con proyectos viejos y tendrás que o mantenerlos o actualizarlos. Todos los conocimientos sirven. Por favor, no desechen lo que está en esta plataforma solo por estar deprecated, solo se harían daño. Saludos.
+1, soy QA y no saben cuantos software "viejos" he visto xd
A los nuevos, si no les corre por falta del prop-types, hagan cd a la carpeta de su proyecto y ahi pongan npm install prop-types, y listo
Este curso está un poco desactualizado. Con TypeScript esto ya no es necesario o sí?
esta muy desactualizado
¿Hay hoy en día alguién que sepa cómo se reemplazó los Prop-Types?
Ya investigué y nos dice esto:
Clic Aquí
PropTypes no se usan comúnmente en React moderno. Use TypeScript para la verificación de tipos estáticos.
Así que a confiar en nuestra experticia para verificar el tipado de los props jeje
Hola. Estoy validando las props, para que según su contenido me muestre un valor, pero quisiera que si no recibo el valor esperado en la prop que la prop valga null, pero me dice las props únicamente son de lectura. Adjunto mi código:
La creación de aplicaciones móviles con React Native es similar a trabajar con React, pero se enfoca en el desarrollo móvil. Ambos utilizan componentes y estado, pero React Native permite construir interfaces nativas para iOS y Android. La diferencia clave es que en React se trabaja principalmente en la web, mientras que en React Native se utilizan componentes específicos para cada plataforma. Además, React Native no requiere TypeScript, aunque puedes usarlo si deseas.