问题描述
我正在创建一个带有 Drf Api 的 React Admin 项目,问题是,当我更新我的一个模型的图像字段时,它会更新,并且一切正常,但会引发下一个错误:“dataProvider 返回了一个'update' 的响应为空。”。
我检查了开发工具的网络部分,它确实收到了来自 api 的响应
这是 React Admin 数据提供程序代码:
const dataProvider = drfProvider('http://127.0.0.1:8000')
const myDataProvider = {
...dataProvider,update : (resource,params) => {
if(!params.data.image) {
return dataProvider.update(resource,params)
}
if (!params.data.image.rawFile) {
delete params.data.image
return dataProvider.update(resource,params)
}
return convertFiletoBase64(params.data.image).then(image => {
dataProvider.update(resource,{
...params,data : {
...params.data,image : image
}
})
})
}
}
const convertFiletoBase64 = file =>
new Promise((resolve,reject) => {
const reader = new FileReader();
reader.onload = () => resolve(reader.result);
reader.onerror = reject;
reader.readAsDataURL(file.rawFile);
});
export default myDataProvider; ```
解决方法
虽然线程很旧,但我最近遇到了这个。希望这对将来的人有所帮助。
目前该函数没有返回任何内容。箭头函数的微小变化将确保返回数据。我删除了 .then(image => {
return convertFileToBase64(params.data.image).then(image =>
dataProvider.update(resource,{
...params,data : {
...params.data,image : image
}
})
)