routing-manager - is a library, based on
react-router-dom
and
route-parser,
designed for managing complicated cyclic routes. For example, you have route, looks like:
/:page(/:id)(/:tab)(/:panel)
routes in brackets are optional.
So, you need to change id from panel, and do not loose route data, which stands after id.
This is what this library was made for. You just need to pass routeMask into ChangeRouteProvider
and use changeRoute(options)
to change route.
Also, you can get route params using according to routeMask getRouteParams()
.
npm install routing-manager
import {
ChangeRouteProvider,
usaChangeRoute
} from "../components/ChangeRoute";
...
function Component() {
const {changeRoute, getRouteParams} = usaChangeRoute();
...
return(
...
<button onClick={() => changeRoute({id: 2})}
);
}
function Example() {
...
return(
<ChangeRouteProvider routeMask={'/:id(/:panel)'}>
...
<Component />
...
</ChangeRouteProvider>
);
}
You can find example project in
this repository.
Also, you can find more info in
wiki
.
Danil Andreev | danssg08@gmail.com