問題タブ [optimistic-ui]
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.
apollo - Apollo Optimistic UI - 楽観的な作成後に楽観的な更新をどのように処理しますか?
Optimistic UI がどのように機能するかを概念的に理解しようとしています。
シナリオ:
- 新しい
User
「ジョン」を作成するためにミューテーションを送信します -->リクエスト A - Optimistic UI 機能を活用して、「John」の「偽の」データをすぐに返します。
- 偽の「ジョン」には
Id
「FakeId10001」というフィールドがあります
- 偽の「ジョン」には
- Request Aからの応答を取得する前に、「John」を「Johnny」に更新する別のミューテーションを送信します
name
--> Request B - リクエスト Aが最終的に処理され、「10001」
User
で「John」が作成されますId
- サーバーはリクエスト Bを処理しようとします。
おそらく、リクエスト BUser
は「FakeId10001」でを更新しようとしId
、そのユーザーが存在しないため失敗します。
Apollo はRequest Aが応答するのを待ってからRequest Bを送信しますか、またはこの動作を処理するために何か他のものを送信しますか?
react-apollo - React apollo ミューテーションと楽観的な更新
HOC
の入力タイプに突然変異を伴うgraphqlを使用していますcheckbox
。オプティミスティック UI 更新オプションも追加しました。チェックボックスをvalue=true
オンにすると でミューテーションが発生し、チェックを外すと でミューテーションが発生しvalue=false
ます。
しかし、問題は、高速クリックによってサーバーへの複数のミューテーション呼び出しが発生し、応答に遅延が生じることです。一方optimisticResponse
、更新はその仕事を行い、チェックボックスを切り替えます。サーバーの応答が到着すると、更新関数が再度呼び出され、チェックボックスがトグルされ、UI に不具合が発生します。
予想できる流れをまとめます
クリックの順序:
UI 更新の順序:
これらのグリッチを取り除く方法はありますか?