When using react-router I can use the Link element to create links that are natively handled by react router.
I see internally it calls this.context.transitionTo(...).
I want to do a navigation, but not from a link, from a dropdown selection for example. How can I do this in code? What is this.context?
I saw the Navigation mixin, but can I do this without mixin's?
Answer
You want to install the history package npm install history
and then pass an instance of it to your router:
import { Router } from "react-router";
import { createBrowserHistory } from "history";
const history = createBrowserHistory()
Then you can programmatically navigate anywhere in your app by using withRouter
to get your history instance and doing something like this history.push("/my-path")
.
You can also set up a file that creates/exports your history instance that you can just import.
Technically you don't need the history package as react-router will pass its own, but if you're doing this you'll prefer the flexibility that your own history instance will provide.
No comments:
Post a Comment