Несколько вещей:
В вашем App.js
вы передаете историю Router
, но вы не импортировали ее ...
import React, { Component } from 'react';
import { Router, Route, Switch } from 'react-router-dom';
import Home from './components/Home';
import Login from './components/Login';
import history from './history'; // import it to use it
class App extends Component {
render() {
return (
<Router history={history}>
<div className="App">
<Switch>
<Route exact path="/" component={Home} /> // notice I also added exact
<Route path="/login" component={Login} />
</Switch>
</div>
</Router>
);
}
}
export default App;
А вот ваш Home.js
очищено ... (нет необходимости в функции handleClick ...)
function gotoLogin() {
history.push('/login');
}
function ContainedButtons(props) {
const { classes } = props;
return (
<div>
<Button
variant="contained"
color="secondary"
className={classes.button}
onClick={gotoLogin}
>
Login
</Button>
</div>
);
}
См. Рабочую демонстрацию здесь: https://codesandbox.io/s/ovwrm11wl5