(React-Native)undefined不是评估'new FormData()'的构造函数

时间:2017-06-21 11:03:29

标签: javascript react-native

在过去的两天里,我一直在努力解决这个问题而无法理解。 我不明白这个错误。这是我的代码:

CallThirdParty(); // this function calls five other functions from classes X Y and Z
WriteToDatabase(); // no child function calls
PerformReconciliation(); // this function calls fourteen other functions from class A

这是错误:

  

017-06-21 13:49:02.761 [错误] [tid:com.facebook.React.JavaScript]   'FormData ERROR',{[TypeError:undefined不是构造函数   (评估'new FormData()')]行:98419,列:36,sourceURL:   'http://localhost:8081/index.ios.bundle?platform=ios&dev=true&minify=false'   }

我是否必须在ReactNative 0.45.0中添加对FormData的支持? 请帮忙

4 个答案:

答案 0 :(得分:4)

我也遇到了这个问题,因为我已将它们导入到顶部。 如果你做得像我做的那样:

import { FormData } from 'react';

import { FormData } from 'react-native';

只需删除" FormData"从你的进口,它将像魔术一样工作。不必导入FormData以使其正常工作。

答案 1 :(得分:1)

错误表明您的FormData未定义。由于它不是本机反应的一部分,您可能必须从npm下载。

npm install --save form-data

然后将其导入文件顶部

import FormData from 'form-data';

答案 2 :(得分:0)

我想我明白了。

首先,我在index.ios.js中找到了一些东西(不知道我从哪里得到这些“提示”)并删除了它们

// const _XHR = GLOBAL.originalXMLHttpRequest ?  
//     GLOBAL.originalXMLHttpRequest :           
//     GLOBAL.XMLHttpRequest                     

// XMLHttpRequest = _XHR;

// // FormData = global.originalFormData;

然后我发现我的调试器(Chrome或RNDebugger)搞乱了我的网络请求,这对多部分图像对象不利。 (奇怪吗?!的)

最后我使用了这段代码:

var fdObject = new FormData();
fdObject.append('avatar', {uri: PicturePath, name: 'avatar.jpg', type: 'image/jpg'});
options.method = POST;
options.headers['Content-Type'] = 'multipart/form-data';
options.body = fdObject;
fetch("http://api.com/post-my-image", options);

答案 3 :(得分:0)

如果

import { FormData } from 'react-native';

没有帮助的话,您可以尝试直接导入:

import FormData from 'react-native/Libraries/Network/FormData';