0

私はこのようなルーターを持っています

<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 を使用してプログラムでナビゲートするをチェックしましたが、まだどこにも行きません。助けてください。

4

1 に答える 1