Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

101
Visualizações
Valor de múltiples cuadros combinados en React

Estoy creando una página en la que el usuario elige cargar algunos archivos, luego elige el tipo de archivo de cada archivo de un cuadro combinado y luego envía. Los 'informes' son los archivos que el usuario eligió cargar, los asigné para mostrarlos en filas y luego el usuario puede elegir para cada archivo el tipo de archivo cruzado. ¿Cómo obtener el valor en el cuadro combinado para cada archivo que cargó el usuario? Mi código se ejecuta solo para un archivo, pero ¿cómo se puede editar para varios cuadros combinados?

ingrese la descripción de la imagen aquí

 const [fileType, setFileType] = useState(''); const fileChangeHandler = (event:React.ChangeEvent<HTMLSelectElement>) => { setFileType(event.target.value); } return ( <div> {reports.map((report, i) => ( <div className="file-row" key={i}> <div>{report.name}</div> <div> <select className='frm-select' value={fileType} onChange={fileChangeHandler}> <option value="" selected disabled hidden>Select File Type</option> {fileTypeOptions.map((option) => ( <option key={option.id}>{option.FileName}</option> ))} </select> </div> {renderFileRow(report, i,fileType)} </div> ))} </div> );
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Le sugiero que use un mapa (como un objeto pero más dinámico) en lugar de una cadena simple. No estoy seguro de que tenga report.id o no, así que estoy usando report.name para este ejemplo

 //create an empty map for all file types const [fileTypes, setFileTypes] = useState<{ [key: string]: string }>({}); const fileChangeHandler = (event:React.ChangeEvent<HTMLSelectElement>, reportName: string) => { //it will return an object for all file types setFileTypes({ ...fileTypes, [reportName]: event.target.value }); } return ( <div> {reports.map((report, i) => ( <div className="file-row" key={i}> <div>{report.name}</div> <div> <select className='frm-select' value={fileTypes[report.name]} onChange={(e) => fileChangeHandler(e, report.name)}> <option value="" selected disabled hidden>Select File Type</option> {fileTypeOptions.map((option) => ( <option key={option.id}>{option.FileName}</option> ))} </select> </div> {renderFileRow(report, i,fileType)} </div> ))} </div> );

Los resultados finales de fileTypes serán así

 { "report name 1": "pdf", "report name 2": "image" }

Así es como accedemos al tipo de archivo para cada informe

 fileTypes[report.name]
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda