私はかなり大きなReactアプリケーションでApolloを広範囲に使用していますが、私は同じ制限に何度も直面しています。Reactコンポーネントマウント(queryDataとlifecycleなし)でのみApolloクエリを実行
コンポーネントのマウント時にのみクエリを実行したいので、このコンポーネントのサブルートを変更してもクエリは再実行されません。コンテナパターンを保持して、コンテナ内でクエリを宣言し、コンポーネントをラップして忘れてしまい、コンポーネント自体がアポロのものをきれいにするようにしたいのです。 これまで、コンポーネント、クエリ、およびオプションを取り、独自のApollo高次コンポーネントを作成し、componentDidMountでqueryDataを自動的に実行する新しいコンポーネントを返すことで、これを実現できました。 Here's the code。 apolloQueryHOC(MyComponent, queryOptions);
しかし、私はページングの実装を開始しましたが、このアプローチは単に動作しません。私が実装した複雑なページングロジックではあまりにも醜いものになります。基本的なApolloコンテナのアプローチを使用すると、魅力的に機能します。しかし、それはすべてのルート/小道具の変更で実行されます。
私の質問は、withApollo
などを使用する以外は、マウント時にのみ「コンテナ」クエリを実行する方法があるかどうかです。