【发布时间】:2022-01-12 09:29:01
【问题描述】:
我有一个文件数组,用于稍后将它们附加到表单数据中,但首先我需要压缩它们并附加到已压缩文件的新数组中。 我无法在循环中将文件附加到新数组。
我做了什么尝试:
const [compressedImages, setCompressedImages] = useState([]);
循环中:
setCompressedImages(...compressed) //it doesn't seem to work
再试一次: (循环中)
compressedImages = [...compressed] //doesn't work
或
compressedImages.push(compressed) //doesn't work
为什么传播运算符在这种情况下不起作用?
我有什么
<input
type="file"
multiple
onChange={e => selectImages(e)}
/>
函数选择图像:
const [images , setImages] = useState([]);
const selectImages = e => {
setImages(e.target.files);
}
然后我需要压缩我的文件并将它们全部附加到另一个数组中。
for (let i = 0; i<images.length; i++){
let compressed = await imageCompression(images[i], options)
images = [...compressed]
//at the end of the loop I must have exactly the same array as 'images'
//but with already processed files
}
【问题讨论】:
标签: javascript arrays reactjs loops