Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

963
Visualizações
Advertencia: un componente está cambiando una entrada controlada para que no esté controlada. Es probable que esto se deba a que el valor cambia de definido a indefinido,

Soy un novato en React.js y me enfrento a un error extraño que no puedo entender por qué sucede eso, busqué pero no encontré ninguna solución.

Aquí están mis códigos de componentes:

 import React, { useState } from "react"; const AddMovie = () => { const [movie, setMovie] = useState({ title: "", director: "" }); const onChange = (value, filed) => { setMovie({ [filed]: value, }); }; const onSubmit = (e) => { e.preventDefault(); console.log(movie.title, movie.director); setMovie({ title: "", director: "" }); }; return ( <div> <form className="flex -mx-2" onSubmit={onSubmit}> <div className="ml-2"> <input type="text" className="border p-2 rounded-md focus:outline-none" placeholder="Movie Title" value={movie.title} onChange={(e) => onChange(e.target.value, "title")} required /> </div> <div className="mx-2"> <input type="text" className="border p-2 rounded-md focus:outline-none" placeholder="director" value={movie.director} onChange={(e) => onChange(e.target.value, "director")} required /> </div> <div> <button type="submit" className="h-full border rounded-md px-4 text-white bg-gray-900" > Add Movie </button> </div> </form> </div> ); }; export default AddMovie;

y el error al que me enfrento es este: (me referí a DOC y leí esta sección pero tampoco funcionó)

react_devtools_backend.js:3973 Warning: A component is changing a controlled input to be uncontrolled. This is likely caused by the value changing from a defined to undefined, which should not happen. Decide between using a controlled or uncontrolled input element for the lifetime of the component. More info: https://reactjs.org/link/controlled-components

¿Entonces, cuál es el problema? He hecho esta forma de enlace (sintaxis de objetos) en Vue.js muchas veces, pero no me he enfrentado a esto ni una sola vez, por lo que es un poco extraño para mí.

about 4 years ago · Santiago Gelvez
1 Respostas
Responde à pergunta

0

El error se debe a que value={movie.director} no está undefined una vez que cambia el título de su película. Eso sucede porque no usas la API de configuración,

Con ganchos (LEA LA NOTA), el establecedor de estado no fusiona el estado como en el componente de clase , cámbielo a:

 // field = 'title' setMovie(prevState => ({...prevState, [field]: value }))

A diferencia del método setState que se encuentra en los componentes de clase, useState no fusiona automáticamente los objetos de actualización.

A diferencia del método setState que se encuentra en los componentes de clase, useState no fusiona automáticamente los objetos de actualización.

about 4 years ago · Santiago Gelvez Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda