私はかなり単純なケースです。ログインしているかどうかに基づいて、インデックスページを/ dashboardまたは/ loginにロードする顧客をリダイレクトする必要があります。問題は、onEnterハンドラが毎回2回呼び出されていることと、なぜそれが不思議なのかということです。ここに私のコードです:リアクタールータOnEnterフックが2回呼び出されました
ReactDOM.render(
<div>
<Provider store={ store }>
<Router history={ history }>
<Route path="/" component={ App }>
<IndexRoute onEnter={ requireAuth }/>
<Route path="/login" component={ Login } />
<Route path="/dashboard" component={ Dashboard } />
</Route>
</Router>
</Provider>
</div>,
document.getElementById('root'));
そして別のバージョンです。問題は両方の点で存在します。
ReactDOM.render(
<div>
<Provider store={ store }>
<Router history={ history }>
<Route path="/" component={ App }>
<IndexRedirect to="/counter" />
<Route path="/login" component={ Login } />
<Route path="/counter" component={ Counter } onEnter={ requireAuth } />
</Route>
</Router>
</Provider>
</div>,
document.getElementById('root'));
私はあなたの問題を解決するかどうかはわかりませんが、ユーザーが認証され、適切なコンポーネントを表示したり、別のコンポーネントにリダイレクトするかどうかをチェックするHOCの各コンポーネントをラップしようとします。しかし、onEnterを使用する場合は、それを調べる。 – magnat
Appコンポーネントに 'onEnter'メソッドを配置します。 – Vikramaditya