Tengo un componente funcional a continuación que tiene props que provienen del componente principal y agregué propTypes para todo el objeto de props . Sin embargo, la pelusa falla con el siguiente mensaje de error.
9:16 error 'data' is missing in props validation react/prop-types 9:22 error 'data.text' is missing in props validationExtracto del código
import PropTypes from 'prop-types' const Child = (props) => <div>{props.data.text}</div> Child.propTypes = { props: PropTypes.object }¿Alguien podría ayudar?
Como se discutió en los comentarios, tiene algunos problemas:
PropTypes.object es una declaración de tipo muy vaga, y la mayoría de los linters te criticarán por eso.Una forma más correcta de escribir todo esto sería así:
import PropTypes from 'prop-types'; /* Note we destructure `data` directly from props in the args */ const Child = ({ data }) => (<div>{data.text}</div>); Child.propTypes = { data: PropTypes.shape({ // use `shape` to allow us to declare types of properties within text: PropTypes.string, // define the text property's type }), }Además, es posible que desee definir algunos de estos elementos según sea necesario o proporcionar entradas predeterminadas.
De la solución de Alexander Nied, hice que funcionara escribiendo de la siguiente manera sin usar la shape , creo que es más genérico.
const Child = ({ data }) => (<div>{data.text}</div>); Child.propTypes = { data: PropTypes.object }