react-router
react-router copied to clipboard
Failing test and future fix of issue #10912
See https://github.com/remix-run/react-router/issues/10912
For now I created a failing test for the new version of React Native's linking api. This test ensures that the listeners are cleaned up properly using the remove method of the new subscription based Linking.addEventListener function. The old api is outlined as deprecated here: https://github.com/facebook/react-native/blob/main/CHANGELOG-pre-070.md#deprecated-2 I am also planning on submitting the bug-fix soon.
With the fix I assume the new API of
React-Native is all that would work for
future versions of react-router-native if
that's not what react-router
maintainers want this then you may want
to take a different approach than the code
below and the bug-fix I will create soon,
but if it is what react-router wants
then we will just need to update two
lines in react-router-native/index.tsx
In this function:
export function useDeepLinking() {
// ... code elided for brevity ...
// Listen for URL changes
React.useEffect(() => {
// ... code elided ...
Linking.addEventListener(URLEventType, handleURLChange);
return () => {
Linking.removeEventListener(URLEventType, handleURLChange);
};
}, [navigate]);
}
From this:
Linking.addEventListener(URLEventType, handleURLChange);
return () => {
Linking.removeEventListener(URLEventType, handleURLChange);
};
To this:
const subscription = Linking.addEventListener(URLEventType, handleURLChange);
return () => {
subscription.remove();
};
This change will pass the tests.
⚠️ No Changeset found
Latest commit: ab92dd93fb1f86c420d205686812e561e84546a4
Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.
This PR includes no changesets
When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types
Click here to learn what changesets are, and how to add one.
Click here if you're a maintainer who wants to add a changeset to this PR
Hi @johnsonjo4531,
Welcome, and thank you for contributing to React Router!
Before we consider your pull request, we ask that you sign our Contributor License Agreement (CLA). We require this only once.
You may review the CLA and sign it by adding your name to contributors.yml.
Once the CLA is signed, the CLA Signed label will be added to the pull request.
If you have already signed the CLA and received this response in error, or if you have any questions, please contact us at [email protected].
Thanks!
- The Remix team
Thank you for signing the Contributor License Agreement. Let's get this merged! 🥳
Unsure how I should do the changeset and semver for this change. I could use a little direction. Thanks.