Вы были действительно близки с вашим комментарием:
<Router> <Route path="/login" component={Login}> <Button variant="contained" color="primary" className={classes.loginButton}> Login </Button> </Route></Router>
Способ, который мне подходит, - создать файл маршрутизатора с константой, содержащей мои маршрутизаторы. Это выглядело бы так:
Маршрутизатор. js
import React from "react";
import { Route } from "react-router-dom";
import Login from " *wherever your login is* ";
import Welcome from " *wherever your welcome is* ";
const Router = () => (
<div>
<Route exact path="/" component={Welcome} />
<Route exact path="/login" component={Login} />
</div>
);
export default Router;
Затем вы сделали бы единственное в своем приложении . js файл маршрутизатора:
Приложение. js
import Router from " *where you put your router file* ";
class App extends Component {
render() {
return (
<div>
<Router>
<Router />
</Router>
</div>
);
}
}
export default App;
Наконец, вы сделаете свою кнопку ссылкой на назначенный URL в вашем маршрутизаторе:
Добро пожаловать. js
import React from 'react';
import Button from '@material-ui/core/Button';
import Box from '@material-ui/core/Box';
import { Link } from "react-router-dom";
//^this import is important
...
<Button component={Link} to='/login' variant="contained" color="primary" className={classes.loginButton}>
Login
</Button>
Это должно вас расстроить. Я тоже новичок в этом, так что скажите мне, если что-то сломалось.