Workshop - ReactJS
  • Conociendo React!
  • 🤷1) ¿Por qué aprender React?
  • 🤓2) Creando elementos HTML con React.createElement API
  • 💣3) Reemplazando createElement por JSX
  • 🎉4) Creando el primer componente reutilizable con React
  • 🔮5) Virtual dom
  • 👮6) Validando props
  • 📝7) Listas
  • 🤡8) Condicionando un render
  • 💅9) Dando estilo a nuestro componente
  • 🍔10) Los class component
  • 🦁11) Manipulando el dom con refs
  • 💫12) Manejo de eventos
  • 💾13) Haciendo uso del State
  • ♻️ 14) Ciclo de vida de los componentes
  • ✏️15) Creando formularios
  • 🦍16) Haciendo un HTTP request con react
  • ✈️ 17) Patrones avanzados
    • 🎉18) Componentización
  • 🛠️ 18) Tips y experiencias
  • ☎️ Contacto
Powered by GitBook
On this page
  • PropTypes
  • Práctico

6) Validando props

Previous5) Virtual domNext7) Listas

Last updated 7 years ago

PropTypes

A medida que nuestra aplicación crece, podemos detectar y prevenir muchos errores con la verificación de tipos. Algunas aplicaciones, utilizan extensiones de JavaScript como o para tipear toda la aplicación. Pero en el caso que no usemos estas extensiones, react tiene incorporado un validador de tipos para las props.

Veamos un ejemplo:

import PropTypes from 'prop-types';

const HelloWorld = (props) => <div>{props.content}</div>

HelloWorld.propTypes = {
  content: PropTypes.string.isRequired
};

PropTypes que pueden utilizarse para garantizar que los datos que reciba el componente sean válidos.

En este ejemplo, estamos usando PropTypes.string. Cuando el componente reciba un valor no válido para sus propiedades se mostrará un error en la consola de JavaScript.

Por motivos de rendimiento, propTypes solo se comprueba en modo de desarrollo.

Por otro lado, también se pueden definir defaultProps para props que no son requeridas:

import PropTypes from 'prop-types';

const HelloWorld = (props) => <div className={props.className}>{props.content}</div>

HelloWorld.propTypes = {
  content: PropTypes.string.isRequired,
  className: PropTypes.string
};

HelloWorld.defaultProps = {
  className: 'hello-world'
};

Práctico

Llevemos esto a la práctica:

👮
Flow
TypeScript
exporta una gama de validadores
react/practico/steps/prop-types at master · workshopsjsmvd/reactGitHub
Logo