Пользовательский интерфейс материала не подключается к React Router (или другим решениям маршрутизации) автоматически.
Пользовательский интерфейс материала не позволяет использовать его стиль компонентов при использовании внешних компонентов для функциональности, это позволит вам использовать React Router Компонент Link DOM в качестве основы для компонента Fab Material UI.
Это достигается путем установки свойства component
компонента Fab (большинство компонентов пользовательского интерфейса материала имеют это свойство). Свойства переданного компонента должны быть доступны для назначения непосредственно в компоненте Fab (см. Пример).
import React, { Component } from 'react';
import { render } from 'react-dom';
import { Switch, BrowserRouter, Route, Redirect, Link } from 'react-router-dom';
import { createBrowserHistory } from 'history';
import Hello from './Hello';
import './style.css';
import { Fab } from '@material-ui/core';
interface AppProps { }
interface AppState { }
const history = createBrowserHistory();
class App extends Component<AppProps, AppState> {
constructor(props) {
super(props);
this.state = {
name: 'React'
};
}
render() {
return (
<BrowserRouter
basename="test"
>
<Switch>
<Route path="/b" render={() => <div>B</div>} />
<Route path="/a" render={() => <div>A</div>} />
<Redirect path="*" to="/a" />
</Switch>
<Fab component={Link} to='/a'>A</Fab>
<Fab component={Link} to='/b'>B</Fab>
</BrowserRouter>
);
}
}
render(<App />, document.getElementById('root'));
Runnable Example: https://stackblitz.com/edit/react-ts-cngowu?file=index.tsx