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

394
Vistas
El archivo reemplaza el archivo, no se agrega en React (Next.js)

Por favor revise mi código primero.

 const test = () => { const [files, setFiles] = useState ([]); //I think I have to edit following statement. const handleFile = (e) => { const newFiles = [] for (let i=0; i < e.target.files.length; i++) { newFiles.push(e.target.files[i]) } setFiles(newFiles) }; return ( {files.map((file, index) => ( <div> <div key={index}> <p> {file.name} </p> <Button size='small' onClick={() => {deleteSelectedFile(file.name)}}> Delete </Button> </div> </div> ))} <div> <label onChange={handleFile}> <input type='file' multiple />+ Attach File </label> </div> ) }

con la declaración handleFile, puedo obtener los archivos de manera adecuada.

Sin embargo, cuando subo un archivo a la vez y luego subo un archivo de nuevo,

el archivo no se agrega. el archivo reemplaza archivo.

No hay problema cuando subo varias veces a la vez.

Por ejemplo, subo 'hola.jpg' y se muestra bien en la pantalla. Luego, subo 'adiós.jpg', se muestra bien, pero 'adiós.jpg' reemplaza a 'hola.jpg'.

Por lo tanto, lo que veo es solo 'adiós.jpg' [botón], no

'hola.jpg' [botón] 'adiós.jpg' [botón]

.

Quiero que mis archivos se apilen, sin reemplazarlos.

¡Necesito un poco de sabiduría!

about 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

En mi opinión, solo necesita distribuir los valores de estado anteriores y los archivos durante el evento de cambio.

 import { useState } from "react"; export default function App() { const [files, setFiles] = useState([]); const handleChange = (e) => { // This is what you need setFiles((prev) => [...prev, ...Object.values(e.target.files)]); }; return ( <div> <label onChange={handleChange}> <input type="file" multiple /> </label> {files.map((file) => { return <p>{file.name}</p>; })} </div> ); }
about 4 years ago · Santiago Trujillo Denunciar

0

¿Qué tal si no crea una nueva variable para nuevos archivos, simplemente establece el estado de los archivos ya que es una matriz?

 setFiles(oldFile => [...oldFile,e.target.files[i]]);

Si es posible, puede colocar un enlace codepen

about 4 years ago · Santiago Trujillo 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