es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo usar el tipo de entrada “text” en un botón de icono (Material UI) en React?

Primero, por favor revise mi código.

Reescribí mi código para hacerlo 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='Subir Archivos'>
                <iconbutton>
                    <addbox color='primary' fontsize='large'></addbox>
                </iconbutton>
            </tooltip>
        </label>
    )
}

Aquí, con este código, estoy intentando abrir el input de tipo “file” cuando hago clic en el IconButton.

Pero parece que no hay ningún cambio.

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

Para su información, aquí está la imagen del botón AddBox que quiero usar en lugar del input de tipo “file”.

ADD ICONBUTTON

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

¡Espero tener noticias suyas pronto!

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Basado en el código proporcionado, parece que estás intentando cargar archivos cuando se hace clic en el IconButton. Sin embargo, el elemento de entrada que contiene la selección de archivo se establece en display:none, lo que significa que no será visible para el usuario.

    Para solucionar este problema, debes activar el cuadro de diálogo de selección de archivo al hacer clic en el IconButton. Esto se puede lograr utilizando una referencia al elemento de entrada y activando su método de clic al hacer clic en el IconButton.

    Aquí tienes un fragmento de código actualizado:

    import React, { useRef } from 'react';
    import { IconButton, Tooltip } from '@material-ui/core';
    import { AddBox } from '@material-ui/icons';
    
    const FileUploader = () => {
      const inputRef = useRef(null);
    
      const handleButtonClick = () => {
        inputRef.current.click(); // activa el cuadro de diálogo de selección de archivo
      };
    
      return (
        <label>
          {/* añadir una referencia al elemento de entrada */}
          <input ref="{inputRef}" type='file' multiple="" style="{{" display:="" 'none'="" }}="">
          <tooltip title='Subir archivos'>
            <iconbutton onclick="{handleButtonClick}">
              <addbox color='primary' fontsize='large'></addbox>
            </iconbutton>
          </tooltip>
        </label>
      );
    };
    
    export default FileUploader;
    

    En el código anterior, hemos añadido una referencia al elemento de entrada utilizando el useRef hook. Luego creamos una nueva función para manejar el evento de clic del IconButton llamada handleButtonClick. Esta función simplemente activa el evento de clic del elemento de entrada utilizando la referencia.

    Finalmente, añadimos la propiedad onClick al componente IconButton y la configuramos en la función handleButtonClick.

    Espero que esto te ayude. Hazme saber si tienes alguna otra pregunta.

Comments are closed.