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

286
Vistas
¿Cómo puedo usar input type='text' en un botón de icono (interfaz de usuario de material) en React?

Primero, mira mi código.

Vuelvo a escribir mi código para que quede claro. ¡Así que no hay necesidad de preocuparse por las cosas de importación!

 const test = () => { return ( <label > <input type='file' multiple style={{ display: 'none' }} /> <Tooltip title='Upload Files'> <IconButton> <AddBox color='primary' fontSize='large'/> </IconButton> </Tooltip> </label> ) }

Aquí, con este código, intento abrir input type="text" cuando hago clic en IconButton.

Pero parece que no hay cambios.

Intenté algunas formas diferentes, sin embargo, no funcionó bien :/

FYI, aquí está la imagen del botón AddBox que quiero usar en nombre del tipo de entrada = 'texto'.

AÑADIR ICONOBOTÓN

No soy bueno en inglés, ¡así que por favor sean comprensivos!

¡¡Tengo muchas ganas de saber de ti!!

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

0

Prueba esto

 const Test = () => { return ( <label htmlFor='file'> <input id='file' type='file' multiple style={{ position: 'fixed', top: '-100em' }} onChange={e => console.log(e.target.files)} /> <Tooltip title='Upload Files'> <IconButton component='span'> <RiAddBoxFill color='primary' fontSize='large' /> </IconButton> </Tooltip> </label> ); };

Creé este código basado en el ejemplo de Material UI ( https://mui.com/components/buttons/#upload-button ) y ya lo probé

Notas:

  1. el atributo htmlFor en la label y la id en input se usa para conectar ambos elementos para hacer que la etiqueta active el clic de entrada si el valor coincide. Vea esto: https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/for (en js simple usamos for pero en react usamos htmlFor probablemente porque la palabra clave for está reservada para javascript for loop )
  2. IconButton necesita accesorios component='span' (no estoy seguro de esto, por defecto usa el botón pero cuando lo intenté no pudo activar el clic de entrada, probablemente porque el elemento del botón bloquea el elemento de la etiqueta)
  3. EDITAR: en Safari, la entrada se deshabilita cuando se oculta con pantalla: ninguna. Un mejor enfoque sería usar position: fixed; arriba: -100em. Fuente: https://stackoverflow.com/a/28075416/10661914

EDITAR: para obtener los archivos, use onChange en el elemento de entrada, el código ya se actualizó

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