問題タブ [apollo-client]
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.
reactjs - リアルタイムで UI を更新する Apollo Client/GraphQL
新しいレコードを作成するときに、ID を作成し、リアルタイムでデータベースに書き込み、それらの変更を UI に反映するユーザー エクスペリエンスを作成しようとしているフォームがあります。または レコードを編集しています。すでに ID が与えられているため、レコードを更新する必要があります。
私はこれを2つのケースで処理する突然変異を持っています:
ミューテーションに ID が渡されないため、新しい ID が作成されます。
ID が渡されるので、そのオブジェクトを更新します。
このコンポーネントは、compose を使用して 2 ケースのミューテーションと、そのオブジェクトのクエリをラップしています。fetchPolicy: 'cache-and-network' をアタッチしようとしましたが、うまくいきません。
意図した結果: コンポーネント アクションで生成された ID を取得しようとしています。
実際の結果: コンポーネントの再レンダリング時に ID が null と表示され、ページの更新時にのみ更新されます
問題の再現方法: 以前の ID が渡されていない場合、オブジェクトの新しい ID を作成するミューテーションがあります。または、ID が渡された場合は、そのオブジェクトを更新します。
reactjs - Graphql を使用してコンポーネントのデフォルトの小道具を反応させる
バックエンドgraphqlサービスからレコードを取得し、Array.map関数でレンダリングしようとしています。残念ながら、それらがロードされる前に、未定義であるためエラーが発生します。コンポーネントにデフォルトの小道具を設定しようとしましたが、うまくいきませんでした。すべてがロードされているかどうか、またはそれらの小道具にデフォルト値を挿入する特定の方法があるかどうかを確認する必要がありますか? 私のコードは今そのように見えます
offline - Apollo クライアントの再帰的ミューテーション
次の例は apollo-client で可能ですか?
簡単な ToDo アプリケーションと悪いインターネット接続の例:
- インターネット接続なし
- (1.突然変異) 新しい todo を作成する
- (1. 突然変異 => 楽観的更新) 新しい todo を表示 (ローカル tmp-ID)
- (2.mutation) 新しい todo が完了したことを確認します (tmp-ID を使用)
- (2. 突然変異 => 楽観的更新) todo を完了済みとして表示
- サーバーに接続されました
- ???
Apollo クライアントは正しい todo の tmp-ID を置き換えることができますか、または手動で行うにはどうすればよいですか?