私はこのようなルーターを持っています
<Router>
<Switch>
<Route path="abc.do" render={() => <SetupAppInitialLoad pageKey="abc" />} />
<Route path="xyz.do" render={() => <SetupAppInitialLoad pageKey="xyz" />} />
</Switch>
</Router>
Route
私はこれらのようなものをたくさん持ってい<Switch>
ます。ユーザーがボタン/リンクをクリックしたときに状態を処理し、一部のコンポーネントから非同期アクションをディスパッチするために redux を使用しています。
export const asyncExampleAction = () => {
return (dispatch, getState) => {
//logic to send inputs to server comes here
.then(checkStatus)
.then(parseJSON)
.then( (data) => {
if (success case) {
history.push(`something.do?phase=something`);
} else {
//handle error logic
}
})
.catch( (error) => {
console.log(error);
});
}
}
現在、私が直面している問題は、history.push が URL を更新して「something.do?phase=something」に移動しても、Route の history.location が更新されていないことです。このため (私が思うに)、ページ「something.do?phase=something」のリンクをクリックすると、ページの URL のみが変更されますが、その新しいページへのナビゲーションは行われません。
React Router V4を使用してプログラムでナビゲートする と react router を使用してプログラムでナビゲートするをチェックしましたが、まだどこにも行きません。助けてください。