【发布时间】:2021-07-11 15:26:15
【问题描述】:
我正在做一个带预览的多图像上传组件,但我遇到的问题仅在执行图像预览的代码段时才会发生。
useEffect(() => {
if (props.images.length > 0) {
setPreview([]);
for (const image of props.images) {
if (image.type) {
//fileChanger(props.images);
const reader = new FileReader();
reader.onloadend = () => {
setPreview((prevState) => {
return prevState.concat(reader.result)});
//image.name
};
reader.readAsDataURL(image);
} else {
setPreview((prevState) => prevState.concat(image));
}
}
} else if (props.images === null) {
//fileChanger(props.images);
setPreview(null);
}
}, [props.images, fileChanger]);
问题是图像的预览顺序与原始数组 (props.images) 中显示的顺序不同。
我认为这可能是由于 reader.onloadend 处理某些图像的时间更长,但我不确定,我正在寻找可能的修复建议。
【问题讨论】:
标签: javascript reactjs filereader