React-router-domにこのパスがあります:
<BrowserRouter>
<div>
<Route exact path='/(index.html)?' component={Home}/> {/* app = home */}
<Route path='/register' component={Registration}/>
</div>
</BrowserRouter>
すべてが正常に機能しているので、コンポーネントのどこでもonClickでパスを変更したいと思います。次のようなコードです。
<button onClick={() => history.Push('/the/path') }> change path </button>
どうやってやるの?
import {withRouter} from 'react-router-dom';
...
class App extends React.Component {
...
nextPath(path) {
this.props.history.Push(path);
}
render() {
return (
<button onClick={() => this.nextPath('/the/path') }>
change path
</button>
);
}
}
export default withRouter(App);
ナビゲーションのみにボタンを使用している場合は、<Link />
に置き換えることができます1 ボタンスタイルを適用します。
<Link to='/new/location/'>Click Me</Link>
または、<NavLink />
を使用できます2。
Material UI を使用する場合、次のコードを使用できます。
import { Link } from 'react-router-dom'
import Button from '@material-ui/core/Button';
<Button component={Link} to="/new/location/">
Click Me
</Button>
(1):import {Link} from "react-router-dom";
(2):import {NavLink} from "react-router-dom";