問題タブ [rtk-query]

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 に答える
99 参照

caching - cacheEntryRemoved の約束が果たされるのはいつですか?

ドキュメントには次のように書かれています。

cacheEntryRemoved- キャッシュエントリがキャッシュから削除された時点を待機できるようにする Promise。これは、アプリケーションで長期間使用/サブスクライブされていないか、api.utils.resetApiState をディスパッチすることによって行われます。

ドキュメントを視覚的にスキャンしましたが、この部分はまだ理解できていません。

上記の引用は、クエリを使用するコンポーネントがマウント解除されたときに約束が果たされることを意味しますか?

コンポーネントがストリーミング更新を受信して​​いる場合はどうなりますか?

cacheEntryRemovedWS サーバーから受信するメッセージの一部が不要になった場合に、onCacheEntryAdded で約束が果たされた直後に、既存の WebSockets 接続から部分的にサブスクライブ解除することをお勧めしますか? それとも、WS 接続からそのチャネルの useEffect フックのクリーンアップ関数でサブスクライブを解除する方がよいでしょうか?

メッセージのより多くのチャネルを並行して受信するために使用される単一の Socket.IO 接続があります。一部のコンポーネントにはチャネルが必要であり、他のコンポーネントには別のチャネルが必要であり、他のコンポーネントには既存のマウントされたコンポーネントと同じチャネルが必要です。この約束が果たされた後、チャンネル登録を解除しても問題ありませんか? これについての詳細は、この他の質問に記載しています。

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

reactjs - RTKQ クエリを使用するコンポーネントのクリック イベントで updateCachedData を呼び出す正しい方法は何ですか?

グローバルなどこかに updateCachedData への参照を保存し、そのクリックイベントで使用することしか考えられませんが、これが React の方法であるかどうかはわかりません。

Socket.IO サーバーで構築された通知フィードがあります。

通知をクリックすると、リストから削除されます。(リストには未読の通知のみが表示されます。)

しかし、リストから削除すると、通知ペインの状態として新しい配列が作成されます。

新しい通知を受け取ると、削除されたすべての通知が戻ってきます。これは意図したものではありません。

すべての通知のリクエストを再作成せずに、キャッシュ エントリを変更し、より正確に項目を削除するにはどうすればよいですか?

エラー メッセージはありません。

コード