Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

279
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!