自定义上传行为,不到服务器,直接浏览器本地获取图片 base 64 进行操作
const customRequest = (options) => {
const {onSuccess, onError, file, onProgress} = options
const reader = new FileReader()
reader.readAsDataURL(file)
reader.onload = (file) => {
setFileList([{
uid: '-1',
name: 'image.png',
status: 'done',
url: file.target.result,
}])
let posterTemplateData = JSON.parse(JSON.stringify(_state.posterTemplateData)) as TypeMaterialData
posterTemplateData.imgSlot[0].src = file.target.result
_setState(prevState => ({
...prevState,
posterTemplateData,
}))
}
}
<Upload
action=""
listType="picture-card"
fileList={fileList}
customRequest={customRequest}
onChange={onChange}
onPreview={onPreview}
multiple={false}
>
{fileList.length < 1 && '+ Upload'}
</Upload>