-
Notifications
You must be signed in to change notification settings - Fork 24.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[0.59.x] URLSearchParams 'Error: not implemented' #23922
Comments
@matthargett could you please look into the issue |
I'm also having this issue. |
Can someone take me through how to setup on IOS after ejecting from expo.Facebook isn't giving me any better news on this issue.Guys how did you solve this.i always get third party error |
// index.js
import { URL, URLSearchParams } from 'whatwg-url';
import { Buffer } from 'buffer';
// react-native 0.59 add own global URLSearchParams without implementation
// https://github.com/facebook/react-native/blob/e6057095adfdc77ccbbff1c97b1e86b06dae340b/Libraries/Blob/URL.js#L66
global.Buffer = Buffer;
global.URL = URL;
global.URLSearchParams = URLSearchParams; |
Hi! Yes, we purposefully didn't bring in the full whatwg-url package because it has a major impact on the bundle size due to needing to support many unicode corner cases. I expanded our narrow implementation slightly to support apollo-server's use of URL. Is there a specific library that isn't interacting properly? Once you narrow the use case, I can suggest what can be done. If you need the fully spec-compliant URL implementation for reasons you can't specify publicly, then the workaround in the comment above will work (at the cost of the bundle size impact). |
@matthargett I think the polyfill should be removed from Even the most basic use case will result in broken URL because of this polyfill. I filed a new issue #24428 for it. I would argue that a broken or incomplete polyfill is worse than no polyfill at all. Exposing it in |
Hi @leethree , thanks for your comments. Because URL needs to integrate with React Native's blob support to enable an opaque reference that avoids huge copies, the URL is customized. Many React Native applications use the included URL and URLSearchParams without issues, even via complex libraries such as apollo-server. I'm open to suggestions (and especially PRs) that are able to meet the needs. In the meantime, I'm happy to submit a PR myself to fix specific use cases that happen via libraries (such as apollo-server, etc). If you can tell me the use case, I can create a PR with tests pretty quickly. |
@matthargett - how do you suggest to proceed? is there a workaround? Currently my app breaks from this, and im not sure why this breaks it |
@matthargett the non-standard-compliant polyfill will cause issues because many 3rd-party libraries uses the global
As you can see from the comments above, the new version breaks people's apps with an obscure error even if it was working before. It means a breaking change was introduced without any documentation or workaround.
In any case, its behaviour should be documented in some way. And a clear workaround should be provided with the error message. |
I second @leethree - basically it breaks the ability to upgrade to the new version 0.59. This is a JSC implementation of URL, it cannot assume that this will change as libraries use it |
I am currently upgrading react native version from 0.57 to 0.59.5 and this issue breaks my app. I tried @retyui 's comment. It does not work. This does not work either
I am using a third-party lib that uses Could anyone suggest any solution or workaround for this issue? This is stopping react-native being upgraded to 59. |
This is what's working for me.
|
The only way I can get this to work, for example with aws-amplify's oauth, is to not only polyfill URLSearchParams as mentioned above, but to also delete the global reference: This causes other issues, so I'd love to hear if anyone has found a more reliable solution. |
Hey! I used an other npm package and had fixed it. |
Why is this closed? This is still an issue in 0.61.5 |
+1 @florian-milky |
I'm facing this issue at 0.61.5 as well |
I'm facing this issue at 0.61.4 as well. Don't know why the issue is closed, it should be fixed. |
Solution:
/* polyfills */
/** URL polyfill */
import 'react-native-url-polyfill/auto'; Explanation: To ensure it being light weight, react native doesn't fully support everything the web supports. That's why sometimes we need RN polyfills |
Why is this issue closed without any resolution? This is still an issue in RN 0.62.2 |
@halileohalilei Check my comment above, it should solve your issue 👍 |
Thanks @a-tokyo, that's what I went with in the end, it works like a charm. But still some recommended solution from the maintainers would be better instead of a workaround. |
This seems like an excellent candidate to add to the React Native documentation. |
🐛 Bug Report
I used next code to check support
URLSearchParams
But now it doesn't work because you add own "implementation"
react-native/Libraries/Blob/URL.js
Lines 69 to 71 in e605709
And a can't overwrite it
To Reproduce
Expected Behavior
My code don't broken!
Remove these polyfills:
react-native/Libraries/Core/setUpXHR.js
Lines 31 to 32 in e605709
Code Example
Environment
The text was updated successfully, but these errors were encountered: