How to fix the “React-router TypeError: _this.props.history is undefined” error with React Router?

Sometimes, we want to fix the “React-router TypeError: _this.props.history is undefined” error with React Router.

In this article, we’ll look at how to fix the “React-router TypeError: _this.props.history is undefined” error with React Router.

How to fix the “React-router TypeError: _this.props.history is undefined” error with React Router?

To fix the “React-router TypeError: _this.props.history is undefined” error with React Router, we wrap our route components with the BrowserRouter component.

For instance, we write

import React from "react";
import ReactDOM from "react-dom";
import App from "./App";
import "./index.css";
import { BrowserRouter, Route } from "react-router-dom";

ReactDOM.render(
  <BrowserRouter>
    <Route path="/" component={App} />
  </BrowserRouter>,
  document.getElementById("root")
);

to wrap BrowserRouter around the Router we have to make this.props.history available in App.

We should also call withRouter with App before exporting App to inject other React Router properties as props into App.

Conclusion

To fix the “React-router TypeError: _this.props.history is undefined” error with React Router, we wrap our route components with the BrowserRouter component.