无法找到变量:URLSearchParams

时间:2017-04-08 18:42:00

标签: javascript

在React Native中,我想对URLSearchParams进行抽象,所以我写了这个类:

<div class="header">
<a href="/">Home</a>
<a href="products.html">Products</a>
<a class="freephone">Freephone: 0800 096 1617</a>
<div class="phone"></div>
</div>

但是当我构建应用程序时,我遇到了这样的错误:无法找到变量:URLSearchParams。我使用es6中的URLSearchParams。

2 个答案:

答案 0 :(得分:5)

URLSearchParams is not supported in iOS. https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams

答案 1 :(得分:4)

正如mrgoos所说,使用JavaScript Core的iOS不支持URLSearchParams,您可以向React Native添加一个polyfill。

例如,我在使用wretch时遇到了问题,因此我在全球范围内使用了这种polyfill:url-search-params-polyfill

// index.js
import 'url-search-params-polyfill';

更新(适用于React Native 0.59)

在React Native 0.59中,开发人员使用URLSearchParams“实现”了throw new Error('not implemented');的某些方法,因此...失败了。

您可以在此处阅读问题:https://github.com/facebook/react-native/issues/23922

我们可以使用whatwg-url实现和buffer包来代替我使用的polyfill,如下所示:https://github.com/facebook/react-native/issues/23922#issuecomment-476070032

// index.js
import { URL, URLSearchParams } from 'whatwg-url';
import { Buffer } from 'buffer';

// react-native 0.59 added its own global URLSearchParams without implementation...
// https://github.com/facebook/react-native/blob/e6057095adfdc77ccbbff1c97b1e86b06dae340b/Libraries/Blob/URL.js#L66
// Issue: https://github.com/facebook/react-native/issues/23922
global.Buffer = Buffer;
global.URL = URL;
global.URLSearchParams = URLSearchParams;