流。调用方法`append`。对象文字出错

时间:2018-02-19 02:28:19

标签: javascript multipartform-data flowtype

我跟着这个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'
});

1 个答案:

答案 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只是忽略了它。