Saturday, July 21, 2018

reactjs - How to programmatically navigate using react router




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

plot explanation - Why did Peaches' mom hang on the tree? - Movies & TV

In the middle of the movie Ice Age: Continental Drift Peaches' mom asked Peaches to go to sleep. Then, she hung on the tree. This parti...