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

267
Vistas
Reaccionar: deshabilite todos los componentes de contenedor de TextField si la declaración es verdadera

Tengo un formulario que tiene algunos campos de texto. Si tiene un rol determinado, debería poder hacer clic en los campos y escribir, pero si no tiene el rol de administrador, todos deberían estar deshabilitados. ¿Cómo deshabilitaría todos los campos de texto dada esta situación? Aquí está mi código. Soy bastante nuevo para reaccionar y cualquier ayuda sería apreciada.

Podría hacer algo como esto, pero hay una manera más fácil con menos repetición, ya que esta forma definitivamente se volverá más grande y más compleja y debería poder deshabilitar todo si no se le asigna el rol correcto.

 export default function BasicTextFields() { const classes = useStyles(); const hasRole = authService.verifyRole(role.admin) return ( {hasRole ? ( <form className={classes.root} noValidate autoComplete="off"> <TextField id="standard-basic" label="Title" /> <TextField id="filled-basic" label="Description" /> <TextField id="outlined-basic" label="Data" variant="outlined" /> </form> ); ) : ( <form className={classes.root} noValidate autoComplete="off"> <TextField id="standard-basic" label="Title" disabled/> <TextField id="filled-basic" label="Description" disabled/> <TextField id="outlined-basic" label="Data" variant="outlined" disabled/> </form> }
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

En lugar de duplicar sus elementos y pasar disabled como una sola palabra clave (que es una forma abreviada de disabled={true} , puede pasarle explícitamente un valor booleano:

 export default function BasicTextFields() { const classes = useStyles(); const hasRole = authService.verifyRole(role.admin) return ( <form className={classes.root} noValidate autoComplete="off"> <TextField id="standard-basic" label="Title" disabled={!hasRole}/> <TextField id="filled-basic" label="Description" disabled={!hasRole}/> <TextField id="outlined-basic" label="Data" variant="outlined" disabled={!hasRole}/> </form> ); }
about 4 years ago · Juan Pablo Isaza Denunciar

0

Un poco más simple...

 <form className={classes.root} noValidate autoComplete="off"> <TextField id="standard-basic" label="Title" disabled={!hasRole}/> <TextField id="filled-basic" label="Description" disabled={!hasRole} /> <TextField id="outlined-basic" label="Data" variant="outlined" disabled={!hasRole}/> </form>
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