Sem usar a classe, como faço para usar PropTypes no componente sem estado funcional do react?
export const Header = (props) => (
<div>hi</div>
)
Sem usar a classe, como faço para usar PropTypes no componente sem estado funcional do react?
export const Header = (props) => (
<div>hi</div>
)
Respostas:
Os documentos oficiais mostram como fazer isso com classes de componentes ES6, mas o mesmo se aplica a componentes funcionais sem estado.
Em primeiro lugar, npm install
/ yarn add
o novo pacote prop-types se você ainda não o fez.
Em seguida, adicione seus propTypes (e defaultProps também, se necessário) após o componente funcional sem estado ter sido definido, antes de exportá-lo.
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;
Não é diferente com o stateful, você pode adicioná-lo como:
import PropTypes from 'prop-types';
Header.propTypes = {
title: PropTypes.string
}
Aqui está um link para os prop-types npm
PropTypes
por conta própria, caso em que deseja parar React
e apenas tertitle: PropTypes.string
Da mesma forma que você faz em componentes baseados em classe:
import PropTypes from 'prop-types';
const funcName = (props) => {
...
}
funcName.propTypes = {
propName: PropTypes.string.isRequired
}
Observação: pode ser necessário instalar prop-types
via npm install prop-types
ou yarn add prop-types
, dependendo da versão do React que você está usando.
É feito da mesma maneira que você faz com componentes baseados em classe
import PropTypes from "prop-types";
const = function_name => {}
function_name.propTypes = {
prop_name : PropTypes.number
. . . . . . . . . . . . . .
}
Espero que isto ajude !
Desde React 15 , use propTypes
para validar adereços e fornecer documentação desta forma:
import React from 'react';
import PropTypes from 'prop-types';
export const Header = (props={}) => (
<div>{props}</div>
);
Header.propTypes = {
props: PropTypes.object
};
Este código pressupõe o valor padrão props={}
se nenhum suporte for fornecido ao componente.