'void |类型中不存在属性'data' FileUploadResult”
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了'void |类型中不存在属性'data' FileUploadResult”相关的知识,希望对你有一定的参考价值。
我开发了一个提供程序来管理我的Ionic3应用程序中的图片上传/下载。这很好但现在我想获取将文件上传到服务器的promise返回的数据。如果我使用alert函数,我可以看到我预期的内容,但是我无法访问JSON内容,因为我的文本编辑器报告了我这个错误:
Property 'data' does not exist on type 'void | FileUploadResult'
你知道我做错了什么吗?
我在my_page.ts中的代码:
uploadImage(newFileName) {
this.attCtrl.uploadAttachment({ file: newFileName })
.then((response) => {
alert(JSON.stringify(response)); // The JSON appears exactly like I expected
alert(response.data); // => Property 'data' does not exist on type 'void | FileUploadResult'
})
.catch((err)=> {
alert(JSON.stringify(err));
})
;
}
然后,我在提供程序中的代码:
public uploadAttachment(obj) {
let targetPath = this.pathForImage(obj.file);
let options: FileUploadOptions = {
...
};
const fileTransfer: FileTransferObject = this.transfer.create();
return fileTransfer.upload(targetPath, url, options).then(data => {
return data;
}, err => {
this.loading.dismissAll();
});
}
答案
最后,我设法处理来自FileUpload的响应。首先应导入FileUploadResult接口:
import { FileUploadResult } from '@ionic-native/file-transfer';
然后,将此接口FileUploadResult设置为响应,并解析响应:
uploadImage(newFileName) {
this.attCtrl.uploadAttachment({ file: newFileName, page: 'wo', target_id: this.wo.wo_id })
.then((r: FileUploadResult) => {
let obj = JSON.parse(r.response);
// Then obj can be handled
})
.catch(err => {
alert(err);
});
}
以上是关于'void |类型中不存在属性'data' FileUploadResult”的主要内容,如果未能解决你的问题,请参考以下文章
错误:'[number,number]'类型中不存在属性'x'
有没有人在使用redux dev工具在TS中遇到这个错误? “'窗口'类型中不存在”属性'__REDUX_DEVTOOLS_EXTENSION_COMPOSE__'。“
在LINQ to Entities中不支持指定的类型成员'x'。只支持初始化器实体成员和实体导航属性。
错误:对类型为'const ItemInstance'的引用无法绑定到类型为'void'的右值