5

reactreduxおよびを使用してreact-routerいます。私のページの 1 つは、API 要求を作成し、データを表示しています。それは正常に動作します。私が知りたいのは、API リクエストがまだ終了しておらず、ユーザーが別のルートに移動した場合、リクエストを中止できるようにしたいということです。

で何らかのアクションをディスパッチする必要があると想定していcomponentWillUnmountます。それがどのように機能するかを理解できないだけです。何かのようなもの...

componentWillUnmount() {
    this.props.dispatch(Actions.abortRequest());
}

そして、xhr参照をアクションのどこかに保存します。これが正しいアプローチかどうかわからない (私はそうは思わない) 誰かが私を正しい方向に向けることができますか?

4

2 に答える 2

2

このアプローチに問題はないと思います。あなたが保持しているのstoreは、グローバルなアプリケーションの状態です。xhr他のアクションに基づいて動作を変更したい場合は、その状態をどこかに保存する必要があります。

ストアが次のようになる例をたくさん見てきました。

{
  isFetching: false,
  items: [],
  lastUpdated: null
};

次に、このisFetching状態を使用して、読み込み中のスピナーを表示したり、複数のxhrリクエストが送信されないようにしたりします。参照を使用して保存し、xhrそれを中止できることは、これの延長にすぎません。

于 2015-10-02T07:10:01.190 に答える