Extra routes for react-router-dom.
Install it
npm i -S react-router-with-props
and import it in your file
import { PropsRoute, PublicRoute, PrivateRoute } from 'react-router-with-props';
- PropsRoute - Default route to which you can pass props.
- PublicRoute - It prevents the access to auth users and you can pass props to it.
- PrivateRoute - It prevents the access to unauth users and you can pass props to it.
It's the basic route, but you can pass props to it like to any other component. Any one can access it.
<PropsRoute exact path="/" component={Title} text="Hello world!" />
It requires two extra props.
Prop | Type | |
---|---|---|
authed | boolean | If the user is authed or not |
redirectTo | string | route to redirect if necessary |
Only unauthed users can access it.
The next exemple will call the Title component and will pass to it the text prop.
<PublicRoute exact path="/public" authed={false} redirectTo="/admin" component={Title} text="This route is for unauthed users"/>
And this one will call redirect them to '/admin' route.
<PublicRoute exact path="/public" authed={true} redirectTo="/admin" component={Title} text="This route is for unauthed users"/>
It requires two extra props.
Prop | Type | |
---|---|---|
authed | boolean | If the user is authed or not |
redirectTo | string | route to redirect if necessary |
Only authed users can access it.
The next exemple will call the Title component and will pass to it the text prop.
<PrivateRoute exact path="/private" authed={true} redirectTo="/login" component={Title} text="This is a private route"/>
And this one will call redirect them to '/login' route.
<PrivateRoute exact path="/private" authed={false} redirectTo="/login" component={Title} text="This is a private route"/>