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

Cri*_*lea 7 javascript react-native

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

try{
var formData = new FormData();
} catch (error) {
console.error('FormData ERROR', error);
}
Run Code Online (Sandbox Code Playgroud)

这是错误:

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

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

小智 5

我也遇到了这个问题,那是因为我在上面导入了它们。如果你像我一样做了:

import { FormData } from 'react';
Run Code Online (Sandbox Code Playgroud)

或者

import { FormData } from 'react-native';
Run Code Online (Sandbox Code Playgroud)

只需从您的导入中删除“FormData”,它就会像魔术一样工作。无需导入 FormData 即可正常工作。


Cri*_*lea 0

我想我明白了。

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

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

// XMLHttpRequest = _XHR;

// // FormData = global.originalFormData;
Run Code Online (Sandbox Code Playgroud)

然后我发现我的调试器(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);
Run Code Online (Sandbox Code Playgroud)