Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

452
Vistas
Material UI Seleccionar componente: un componente está cambiando una entrada controlada de tipo texto para que no esté controlada

Estoy tratando de cambiar el valor de Seleccionar entrada y luego recibo la siguiente advertencia en la consola.

index.js:1446 Advertencia: un componente está cambiando una entrada controlada de tipo texto para que no esté controlada. Los elementos de entrada no deben cambiar de controlado a no controlado (o viceversa). Decida entre usar un elemento de entrada controlado o no controlado durante la vida útil del componente.

Pero estoy actualizando el estado solo de la manera correcta. Aquí está mi código.

 <Select value={props.selectedService} onChange={props.handleSelectChange} inputProps={{ name: 'selectedService', }} > <MenuItem value=""> <em>None</em> </MenuItem> <MenuItem value="Dry Cleaning">Dry Cleaning</MenuItem> <MenuItem value="Washing and Ironing">Washing and Ironing</MenuItem> <MenuItem value="Rolling">Rolling</MenuItem> </Select>

Y la funcionalidad handleselectchange está aquí.

 handleSelectChange = ({target: {name,value}}) => { console.log(name); console.log(value); this.setState({ serviceRequest: { selectedService: value } }); }

Y la declaración del objeto de estado está debajo

 state = { open: false, selectedDate: new Date(), selectedTime : new Date(), mailDetails :{ name:"", email:'', message:'' }, serviceRequest: { name: '', email: '', mobileNumber:'', address:'', landMark:'', selectedService:'' } };

¿Alguien puede sugerir cuál es el problema?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

No controlado aquí significa que puede estar configurando el valor del componente Select como indefinido, esto se debe a que value={props.selectedValue} aquí. En esto, los accesorios o el valor seleccionado pueden ser nulos, por lo que resulta ser un componente no controlado en eso.

Para resolver la advertencia, puede agregar una condición para verificar nulo y establecer el valor predeterminado.

value={props.selectedValue ? props.selectedValue : " "}

O para facilitar la sintaxis usando el operador coalescente nulo (??)

value={props.selectedValue ?? " "}

over 4 years ago · Santiago Trujillo Denunciar

0

lo mismo que la respuesta aceptada, pero verifique que no esté definido y proporcione un valor predeterminado con un operador coalescente nulo (??)

 value={props.selectedValue ?? ""}
over 4 years ago · Santiago Trujillo Denunciar

0

solo puedes cambiar

 value={props.selectedService}

para

 value={props.selectedService ? props.selectedService : ""}

 <Select ***value={props.selectedService ? props.selectedService : ""}*** onChange={props.handleSelectChange} inputProps={{ name: 'selectedService', }} > <MenuItem value=""> <em>None</em> </MenuItem> <MenuItem value="Dry Cleaning">Dry Cleaning</MenuItem> <MenuItem value="Washing and Ironing">Washing and Ironing</MenuItem> <MenuItem value="Rolling">Rolling</MenuItem> </Select>
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda