Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

195
Views
Reaccionar - PropTypes not Enforcing isRequired

Estoy creando un componente que incluye dos accesorios. La primera es una lista de cadenas, por ejemplo ['string1', 'string2'] y la segunda es una lista de cadenas, por ejemplo [['string1arr1' ,'string2arr1'], ['string3arr2', 'string4arr2']] .

Es más o menos como se ve mi componente:

 import React from 'react'; import PropTypes from 'prop-types'; export default function ComponentName (props){ //insert component code here } ComponentName.propTypes = { one: PropTypes.arrayOf(PropTypes.string).isRequired, two: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.string)).isRequired, }

Cuando paso a través de un accesorio con un tipo de datos diferente, por ejemplo

 <ComponentName one={123} two={'abc'} />

No se produce ningún error PropTypes y el componente se ejecuta con normalidad.

He estado revisando varios tutoriales diferentes tratando de ver qué es lo que he hecho mal y, por lo que puedo ver, estoy usando poropTypes correctamente. También intenté usar requisitos más simples como one: PropTypes.string.isRequired y todavía no funcionó.

Versión de los tipos de reacción y prop instalados:

 "react": "^17.0.2", "prop-types": "^15.8.1"

Dependencias de Babel:

 "@babel/core": "^7.16.7", "@babel/plugin-proposal-class-properties": "^7.16.7", "@babel/preset-env": "^7.16.7", "@babel/preset-react": "^7.16.7", "babel-loader": "^8.2.3",

Ahora funciona y no estoy seguro de lo que hice para arreglarlo :/

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

parece correcto Sin embargo, no estoy seguro de si su ejemplo anterior es la misma semántica que está usando en su código. No puede declarar export default ComponentName (props) , el nombre del componente es desconocido, ni una función ni una clase. Pruebe algo como esto en su lugar y tal vez resuelva su problema:

 import React from 'react'; import PropTypes from 'prop-types'; function ComponentName (props){ //insert component code here } ComponentName.propTypes = { one: PropTypes.arrayOf(PropTypes.string).isRequired, two: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.string)).isRequired, } export default ComponentName;

Editar:

Tu código funciona aquí para mí:

ingrese la descripción de la imagen aquí

package.json

 { "name": "my-app", "version": "0.1.0", "private": true, "dependencies": { "@testing-library/jest-dom": "^5.14.1", "@testing-library/react": "^11.2.7", "@testing-library/user-event": "^12.8.3", "react": "^17.0.2", "react-dom": "^17.0.2", "react-scripts": "4.0.3", "web-vitals": "^1.1.2" }, "scripts": { "start": "react-scripts start", "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject" }, "eslintConfig": { "extends": [ "react-app", "react-app/jest" ] }, "browserslist": { "production": [ ">0.2%", "not dead", "not op_mini all" ], "development": [ "last 1 chrome version", "last 1 firefox version", "last 1 safari version" ] } }

App.js

 import logo from "./logo.svg"; import "./App.css"; import ComponentName from "./ComponentName"; function App() { return ( <div className="App"> <header className="App-header"> <ComponentName one={["123"]} two={[["923939"]]} /> <img src={logo} className="App-logo" alt="logo" /> <p> Edit <code>src/App.js</code> and save to reload. </p> <a className="App-link" href="https://reactjs.org" target="_blank" rel="noopener noreferrer" > Learn React </a> </header> </div> ); } export default App;

ComponentName.js

 import React from "react"; import PropTypes from "prop-types"; export default function ComponentName() { return <div>ComponentName</div>; } ComponentName.propTypes = { one: PropTypes.arrayOf(PropTypes.string).isRequired, two: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.string)).isRequired, };
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!