use-route-as-state icon indicating copy to clipboard operation
use-route-as-state copied to clipboard

react-router-dom v6 support?

Open d9k opened this issue 3 years ago • 18 comments

✘ [ERROR] No matching export in "node_modules/react-router-dom/index.js" for import "useRouteMatch"

    node_modules/use-route-as-state/dist/index.es.js:2:22:
      2 │ import { useLocation, useRouteMatch, useHistory, generatePath } from 'react-r..$
        ╵                       ~~~~~~~~~~~~~

✘ [ERROR] No matching export in "node_modules/react-router-dom/index.js" for import "useHistory"

    node_modules/use-route-as-state/dist/index.es.js:2:37:

https://reactrouter.com/docs/en/v6/upgrading/v5

d9k avatar Apr 04 '22 11:04 d9k

Thanks, you're welcome to suggest a PR for it!

I will try to take it soon.

baruchiro avatar Apr 04 '22 13:04 baruchiro

https://github.com/pbeshai/use-query-params/ solved react router v6 compatibilty

see: https://github.com/pbeshai/use-query-params/blob/master/examples/react-router-6/src/index.js https://github.com/pbeshai/use-query-params/issues/196#issuecomment-996893750

d9k avatar Apr 04 '22 13:04 d9k

useRouteMatch -> useMatch

useMatch() expects a parameter, whereas in use-route-as-state, useRouteMatch() is called with no parameters, so it is not a direct replacement.

ramirez avatar Apr 07 '22 16:04 ramirez

I need some help here.

If there are breaking changes in react-router-dom, how can I support both v5 and v6 in my library? Do I need to create a separate branch and versions for that?

baruchiro avatar Apr 08 '22 06:04 baruchiro

Hi @baruchiro

In my opinion, you shouldn't support V5 and V6 in same time in your library.

Create a new major version of you library who indicate that react-router v5 it's doesn't support anymore. If someone want to use react-router V5, it can use the previous major version of your library.

s-roueche avatar May 03 '22 12:05 s-roueche

Hi @s-roueche, thanks!

I think it means that I have two options. One is to stop supporting V5, and the other one is to maintain two branches.

Since V6 is still not stable and since the migration is a big issue, I think I need to choose option two.

WDYT?

baruchiro avatar May 03 '22 13:05 baruchiro

If you take a look to the historical version of react-router-dom, you can see they don't work a lot on version V5 anymore.

You can still create two branches, I think you won't have a lot of work to do for the version 5 in the futur.

About the version 6, you can see now on npm, that the version 6 is almost 3 times more downloaded than the version 5. In my opinion, migrate to the version 6 it's a good option 👍

SRloreal avatar May 03 '22 14:05 SRloreal

If you want I started to implement the migration to v6 on a personal branch.

There are just 4 tests failed.... I don't really understand how to fixe it 😓

If you want I can push it on your repo ?

SRloreal avatar May 03 '22 16:05 SRloreal

Yes, sure! Thank you, I will be happy to see your branch.

I also did some local work for the upgrade, and also failed on tests, you can see it here: https://github.com/baruchiro/use-route-as-state/pull/176.

baruchiro avatar May 04 '22 05:05 baruchiro

I wasn't able to push my branch on your repo because I don't have the permission.

Can you give me the permission to do it ?

my username is @s-roueche

s-roueche avatar May 04 '22 07:05 s-roueche

You should push your fork and open a PR.

Use gh pr create with the Github CLI.

baruchiro avatar May 04 '22 07:05 baruchiro

It's done.

s-roueche avatar May 04 '22 07:05 s-roueche

I wrote my own package to handle state using search params with react-router-dom-v6: https://github.com/jschwindt/react-use-search-params-state

jschwindt avatar Oct 03 '22 14:10 jschwindt

I wrote my own package to handle state using search params with react-router-dom-v6: https://github.com/jschwindt/react-use-search-params-state

@jschwindt Why not implement it here?

baruchiro avatar Oct 06 '22 05:10 baruchiro

I wrote my own package to handle state using search params with react-router-dom-v6: https://github.com/jschwindt/react-use-search-params-state

@jschwindt Why not implement it here?

I extracted it from an app that I was working on, and the usage is slightly different. I commented here just in case it is useful for somebody else.

jschwindt avatar Oct 06 '22 12:10 jschwindt

Will there be a version compatible with v6 or will this be staying with v5?

ramirez avatar Oct 30 '23 07:10 ramirez

I will deprecate this package.

baruchiro avatar Dec 27 '23 11:12 baruchiro