Estoy usando el estado como matriz de elementos.
const [archivos, setFiles] = useState([])
cuando coloco objetos en su matriz por primera vez, siempre me da una matriz vacía, la segunda vez me da una matriz con un archivo y así sucesivamente. Pero las imágenes json que uso en la función setFiles siempre tienen un archivo en la primera iteración.
if(files.length==0){ console.log("images") let jsonimages = [{image: {preview: URL.createObjectURL(file)}, file: image_test_src, progress: null, keyvalue:key }] console.log(jsonimages) console.log("files") file=jsonimages console.log(files)} else{ let jsonimages = {image: {preview: URL.createObjectURL(file)}, file: image_test_src, progress: null, keyvalue:key } setFiles(current => [...current, jsonimages ]) }también probé esto sin el bloque if de verificar la longitud de la matriz y obtuve el mismo resultado
let jsonimages = {image: {preview: URL.createObjectURL(file)}, file: image_test_src, progress: null, keyvalue:key } const updateFiles=[...files, jsonimages] console.log("update files") console.log(updateFiles) setFiles(updateFiles) console.log("files") console.log(files)pasar archivos en el segundo código me da las siguientes salidas
update filesmatriz [ {…} ]
entonces "jsonimages" tiene el valor
pero el estado no cambia
files react_devtools_backend.js:4049:25matriz []