0
react-router-dom
を使用すると、ユーザーが新しいページに移動したときをどのように検出できますか?ルート変更のナビゲーションメニューを閉じるには
私は現在"react-router-dom": "^4.2.2"
と"react": "^15.6.1"
を使用しています。ユーザーが新しいターゲットURLを選択したときにモバイルナビゲーションメニューを閉じたいが、ルートが変更されたときに検出できない。
react-router-dom
のコールバックがありますか?次のように私は私の現在のコードがあるlocation.onChange(() => { this.state.collapsed = true; })
の線に沿ってコードを呼び出すことができるようにしたいと思います:
コンポーネント:
class Leftnav extends Component {
constructor() {
super();
this.state = {
collapsed: true,
};
}
toggleMenu =() => {
this.setState({
collapsed: !this.state.collapsed,
})
};
render() { ... { */html here/* } ... };
};
テンプレート:
<ul className={"leftnav-collapse " + (this.state.collapsed ? 'collapsed' : '')}>
<li><NavLink to={`/events`} activeClassName="current">Events</NavLink></li>
<li><NavLink to={`/people`} activeClassName="current">People</NavLink></li>
</ul>
スクリーンショット:
Thanks gravityplanx。あなたの例を次のような状況で調整するにはどうすればいいですか? a。)現在のページへのリンクをクリックすると、URLの変更は行われないので、メニューを開いたままにしておきます。b)ページ上のリンクをクリックするとURLが変わります。ナビゲーションメニューを閉じて閉じます。 –
a)反応ルータの['activeStyle'](https://github.com/ReactTraining/react-router/blob/master/packages/react-router-dom/docs/api/NavLink.md# cssプロパティ['pointer-events'](https://developer.mozilla.org/en-US/docs/Web/CSS/pointer-events)とともに、 – gravityplanx