問題タブ [graphcool]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1033 参照

react-native - Authorizationヘッダーを遅らせるApolloクライアント

React-Native アプリで Apollo (Graph Cool を使用)、redux、および Auth0 を使用しています。ヘッダーが設定されるまで、クエリとミューテーションを遅らせようとしています。

idToken は Async Storage に格納されるため、promise です。redux を使用してトークンを渡すことはできません。循環依存関係が作成されるためです。

ユーザーが初めてログインするか、トークンの有効期限が切れている場合、ヘッダーが設定される前にクエリが送信されるため、エラーが発生しますError: GraphQL error: Insufficient Permissionsここに画像の説明を入力

トークンが見つかってヘッダーに追加されるまで、クエリを遅らせるにはどうすればよいですか? 私は3つの主な解決策を探してきました:

  1. forceFetch: true; を追加します。これは、Apollo クライアントの以前の実装の一部のようです。同等のものを見つけたとしても、アプリは最初のフェッチ試行で失敗します。
  2. ログイン時にストアをリセットします(水分補給?)。これはまだ非同期であるため、これが結果にどのように影響するかわかりません。
  3. ログイン自体からすべてのミューテーションとクエリを削除しますが、アプリの進行状況により、これは実行できません。

いくつかのスニペット: