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

240
Views
Advertencia de reacción "Proporcionó un accesorio `valor` a un campo de formulario sin un controlador `onChange`..." al usar la propagación de eventos

Un ejemplo:

 function App() { const [user, setUser] = React.useState({ name: '', surname: '' }); const handleChange = e => { setUser(prev => ({...prev, [e.target.name]: e.target.value})); }; return ( <div className="App"> <form onChange={handleChange}> <input type="text" name="name" placeholder="name" value={user.name} /> <input type="text" name="surname" placeholder="surname" value={user.surname} /> </form> </div> ); } ReactDOM.createRoot(document.querySelector('.react')).render(<App />);
 <script crossorigin src="https://unpkg.com/react@18/umd/react.development.js"></script> <script crossorigin src="https://unpkg.com/react-dom@18/umd/react-dom.development.js"></script> <div class='react'></div>

Y recibo estas advertencias:

Advertencia: proporcionó una propiedad de value a un campo de formulario sin un controlador onChange . Esto generará un campo de solo lectura. Si el campo debe ser mutable, use defaultValue . De lo contrario, establezca onChange o readOnly .

¿Debería simplemente ignorarlos?

about 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Técnicamente, no hay nada malo en su código. Entonces sí, puede ignorar los registros de forma segura.

Sin embargo, la delegación de eventos no es la "manera de reaccionar" para lidiar con los estados de los formularios, por lo que no podrá deshacerse de esas advertencias.

En mi humilde opinión, no es una buena experiencia de desarrollo, por lo que podría simplemente agregar onChange={handleChange} a cada campo en lugar de configurar onChange en el formulario. Supongo que el sistema de eventos React está lo suficientemente optimizado como para no tener que delegar eventos, incluso si en su caso de uso fue bastante conveniente y elegante.

about 4 years ago · Santiago Trujillo Report

0

Su OnChange debe estar en las entradas y no en el formulario, aquí hay un ejemplo:

 <input type="text" name="name" placeholder="name" value={user.name} onChange={handleChangeName}/> <input type="text" name="surname" placeholder="surname" value={user.surname} onChange={handleChangeSurName}/>

y este es el mango cambio de nombre

 const handleChangeName = (e) => { setUser(userInfo => {...userInfo, ['name']: e.target.value}) }

Debido a que no tiene onChange en sus entradas, genera esta alerta.

about 4 years ago · Santiago Trujillo 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!