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

281
Vistas
La propiedad 'deshabilitar' del campo de texto de la interfaz de usuario del material no se actualizará más de una vez

Tratando de hacer un programa donde hay interruptores de radio, cada uno de los cuales equivale a un valor booleano diferente. Dependiendo del valor booleano, haría que la propiedad 'deshabilitar' en el campo de texto fuera verdadera o falsa. Mi código permite que el botón se seleccione de forma predeterminada como edición habilitada y cuando selecciono deshabilitar, deshabilita el campo de texto. Sin embargo, si hago clic en deshabilitar, luego intento y hago clic en habilitar nuevamente, no cambiará el campo de texto de deshabilitar.

 const [radioEdit, setRadioEdit] = React.useState(false); <RadioGroup value={radioEdit} onChange={(e) => setRadioEdit(e.target.value)} aria-labelledby="demo-radio-buttons-group-label" name="radio-buttons-group" row > <FormControlLabel value={true} control={<Radio />} label="Disabled" /> <FormControlLabel value={false} control={<Radio />} label="Enabled" /> <p>{String(radioEdit)}</p> <TextField id="outlined-basic" variant="outlined" size="small" ////////RIGHT HERE//////// value={data["companyname"]} disabled={radioEdit} />

ingrese la descripción de la imagen aquí

Si el estado predeterminado de radioEdit no es 'falso', se desactiva automáticamente (se establece en verdadero o nulo) y no me permite actualizarlo varias veces.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

El problema es con onChange que ha definido con RadioGroup . Por lo general, definimos onChange={(e) => setRadioEdit(e.target.value)} para establecer el valor de la entrada de texto enEventChangeHandler. Pero aquí es para el botón de radio. Estaba usando mecanografiado para encontrar la respuesta para esto y tan pronto como copié y pegué su código, me mostró el error en setRadioEdit(e.target.value) mientras que setRadioEdit debería ser booleano. La razón por la que TypeScript es súper útil. La respuesta es

 onChange={() => setRadioEdit(!radioEdit)}

Estoy alternando mi estado aquí en onChange . Entonces, cuando setRadioEdit como true , en realidad radioEdit se configuraría como true . Así es como funciona el useState . Así que al definir setRadioEdit(!radioEdit) estamos alternando el estado. Si es true cambia a false y viceversa.

También deberá cerrar el componente </RadioGroup> . respuesta completa

 const [radioEdit, setRadioEdit] = useState(false); return ( <> <RadioGroup value={radioEdit} onChange={(e) => setRadioEdit(!radioEdit)} aria-labelledby="demo-radio-buttons-group-label" name="radio-buttons-group" row > <FormControlLabel value={true} control={<Radio />} label="Disabled" /> <FormControlLabel value={false} control={<Radio />} label="Enabled" /> </RadioGroup> <p>{String(radioEdit)}</p> <TextField id="outlined-basic" variant="outlined" size="small" disabled={radioEdit} /> </> );
about 4 years ago · Juan Pablo Isaza 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