Feature Request: Support Routers other than react-router
Is your feature request related to a problem? Please describe. I’ve been using React-Admin since its early days, including the enterprise version for over three years, and have successfully integrated it with React Native for over a year. However, React-Admin’s tight coupling with react-router is a huge limitation — specifically, react-router-native is now deprecated, and I’m locked into an outdated version just to keep things working. This makes long-term maintenance and upgrades difficult.
Describe the solution you'd like I’d like the router to be moved to a customizable context, similar to how data and auth providers are handled. This would decouple routing from a specific library and make it possible to use React-Admin with any routing solution, including custom ones tailored for native or other platforms.
Describe alternatives you've considered Currently, I’m using react-router-native as a workaround, but it’s deprecated and not officially supported by either React-Admin or React Router. There’s no long-term path forward with this approach.
Additional context Allowing routing to be handled via a routing context would greatly expand the flexibility of React-Admin. It would allow projects to integrate seamlessly with alternative routing systems, adapt to React Native and other environments, and reduce the tight coupling with a single router implementation.
This is more complex than adding a context as React-admin actually declares routes. The way to do it differs greatly in react-router and tanstack-router for example. I'd love to have that but it's a really complex problem. Besides, there's no way to do it without breaking changes.
Regarding react-native, you can probably use the memory router instead of react-router-native
This is more complex than adding a context as React-admin actually declares routes. The way to do it differs greatly in react-router and tanstack-router for example. I'd love to have that but it's a really complex problem. Besides, there's no way to do it without breaking changes.
Regarding react-native, you can probably use the memory router instead of
react-router-native
I completely understand that this would be a massive and complex update.
However, I also believe it would be worthwhile to open react-admin to new routers would take it beyond admin panels. The context-based solution has already been implemented and tested successfully across multiple libraries and frameworks—for example, in refine.
I can try to work on a proof of concept if you're interested.
Let me know what you think