我跟着这个guide上传了一张照片。代码工作正常,但flowtype会告诉我有一个错误:call of method 'append'. Function cannot be called on any member of intersection type intersection
在跟踪错误之后,由于打字流程为FormData
提供,因此流程无法通过该代码。更精确的流程抛出以下正确的方法:
append(name: string, value: string): void;
append(name: string, value: Blob, filename?: string): void;
append(name: string, value: File, filename?: string): void;
我正在使用:
const data = new FormData();
data.append('name', 'testName'); // you can append anyone.
data.append('photo', {
uri: photo.uri,
type: 'image/jpeg', // or photo.type
name: 'testPhotoName'
});
答案 0 :(得分:2)
似乎浏览器标准FormData
已在React Native中被覆盖,其实现无法向标准API确认。看起来像一个悬而未决的问题:https://github.com/facebook/react-native/issues/13187
现在最好的选择可能是(obj: any)
将类型转换为any
,以便它可以毫无问题地工作,例如。
data.append('photo', ({
uri: photo.uri,
type: 'image/jpeg', // or photo.type
name: 'testPhotoName'
}: any));
所以Flow只是忽略了它。