// 上传多张图片
const getBase641 = (file) =>
new Promise((resolve, reject) => {
const reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = () => resolve(reader.result);
reader.onerror = (error) => reject(error);
});
const [previewOpen, setPreviewOpen] = useState(false);
const [previewImage, setPreviewImage] = useState('');
const [previewTitle, setPreviewTitle] = useState('');
const [fileList, setFileList] = useState([]);
const handlePreview = async (file) => {
if (!file.url && !file.preview) {
file.preview = await getBase641(file.originFileObj);
}
setPreviewImage(file.url || file.preview);
setPreviewOpen(true);
setPreviewTitle(file.name || file.url.substring(file.url.lastIndexOf('/') + 1));
};
<Upload
name="file"
action="上传图片接口"
listType="picture-card"
fileList={fileList}
onPreview={handlePreview}
onChange={({ fileList: newFileList }) => {
setFileList(newFileList);
}}
>
{fileList.length >= 3 ? null : <div>上传图片</div>}
</Upload>
<Modal
open={previewOpen}
title={previewTitle}
footer={null}
onCancel={() => setPreviewOpen(false)}
>
<img
style={{
width: '100%',
}}
src={previewImage}
/>
</Modal>
</div>
</Modal>
点击编辑(显示已有的图片)
const a = 图片的数组.map((url) => ({
url: url,
}));
setFileList(a);