私のプロジェクトで、v3をreact-router
からv4に移植して、現在はreact-router-dom
としています。これで問題は、MenuBarコンポーネントがあるときに発生します。これは、現在のパスが何であっても正確に同じリンクを表示するため、ルーティングロジックとは完全に別です(予想通り)。今はv3ですべてうまく動作しましたが、今度は同じactiveClassName
プロパティを持つNavLink
を使用している場合、アクティブなルートはNavBarで更新されず、更新時にのみ更新されます。これはちょっとばかげているようですので、これを回避する手段が必要です。 リアクタールーターv4 NavLinkアクティブルート
上記を
export default @inject('ui') @observer class App extends Component {
render() {
return (
<Router>
<div className={ styles.wrapper }>
<Sidebar />
<main className={ `${styles.main} ${!this.props.ui.menuOpen && styles.closed}` }>
<Route exact path="/" component={ HomePage } />
<Route path="/signup" component={ SignUpPage } />
<Route path="/login" component={ LoginPage } />
<Route path="/about" component={ AboutPage } />
</main>
<footer className="site-footer"></footer>
</div>
</Router>
);
}
}
もう一度動作させるにはどうすればよいですか? (これらはページの更新時に正しく機能します)
ありがとうございました。私は本当にMobXを疑っていました。なぜなら、現在のところナビゲーションメニューだけがそれに接続されているからです。私はまた、場所を小道具として渡すことを検討しましたが、それを行うためのよりエレガントな方法が必要であると考えました。その方法では、ルートで更新して変更を保存する必要がある各コンポーネントで行う必要があります。 –
もう一度、ありがとうございました。正しい答えを教えてくれました。私は、実際にそれを必要としないので、ほとんどのコンポーネントから 'observer'ロジックを削除してしまい、MobXが意図したときにコンポーネントが排他的に変更されることを免れました。 –
....... briliant。 – Tomasz