在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。
答案 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;