Sin usar la clase, ¿cómo uso PropTypes en el componente funcional sin estado de react?
export const Header = (props) => (
<div>hi</div>
)
Sin usar la clase, ¿cómo uso PropTypes en el componente funcional sin estado de react?
export const Header = (props) => (
<div>hi</div>
)
Respuestas:
Los documentos oficiales muestran cómo hacer esto con las clases de componentes de ES6, pero lo mismo se aplica a los componentes funcionales sin estado.
En primer lugar, npm install
/ yarn add
el nuevo paquete prop-types si aún no lo ha hecho.
Luego, agregue sus propTypes (y defaultProps también si es necesario) después de que se haya definido el componente funcional sin estado, antes de exportarlo.
import React from "react";
import PropTypes from "prop-types";
const Header = ({ name }) => <div>hi {name}</div>;
Header.propTypes = {
name: PropTypes.string
};
// Same approach for defaultProps too
Header.defaultProps = {
name: "Alan"
};
export default Header;
No es diferente con el estado, puede agregarlo como:
import PropTypes from 'prop-types';
Header.propTypes = {
title: PropTypes.string
}
Aquí hay un enlace a prop-types npm
PropTypes
por sí solo, en cuyo caso querrá dejar React
y solo tenertitle: PropTypes.string
De la misma manera que lo hace en componentes basados en clases:
import PropTypes from 'prop-types';
const funcName = (props) => {
...
}
funcName.propTypes = {
propName: PropTypes.string.isRequired
}
Nota: Es posible que deba instalar a prop-types
través de npm install prop-types
o yarn add prop-types
, según la versión de React que esté utilizando.
Se hace de la misma manera que lo hace con los componentes basados en clases.
import PropTypes from "prop-types";
const = function_name => {}
function_name.propTypes = {
prop_name : PropTypes.number
. . . . . . . . . . . . . .
}
Espero que esto ayude !
Desde React 15 , use propTypes
para validar accesorios y proporcionar documentación de esta manera:
import React from 'react';
import PropTypes from 'prop-types';
export const Header = (props={}) => (
<div>{props}</div>
);
Header.propTypes = {
props: PropTypes.object
};
Este código asumiendo el valor predeterminado props={}
si no se proporcionan accesorios al componente.