Llamo mi atención el siguiente error:
Palabras más, palabras menos el error dice:
“Un componente está cambiando un input no controlado a controlado. Decida si quiere que sea controlado o NO controlado y déjelo así toda su vida (la vida del componente claro).”
El error aquí es al momento que ReactDOM hace el render de nuestros inputs se topa con por poner un ejemplo el input del firstName:
value={this.state.firstName}
this.state.firstName evalúa a undefined por no estar definidos desde el principio en el state . Por lo tanto ReactDOM decide que es un Input no controlado.
Cuando handleChange() es llamado y asigna un valor string al this.state.firstName, el input pasa de no controlado a controlado.
handleChange = e => {
this.setState({
[e.target.name]: e.target.value,
});
};
Esto pasando en todos nuestros inputs menos en el del jobTitle porque ese sí lo definimos en el state al principio.
Mi solución fue definir valores default en el state:
state = {
firstName: '',
lastName: '',
email: '',
jobTitle: '',
twitter: ''
};
Y chao error, espero les sirva.
más info en controlled-components
Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.