ホームページ  >  に質問  >  本文

特別なイベント (ソケット IO メッセージ) を送信するときにすべての Redux RTK クエリを無効にする方法は?

SPA React アプリケーションをすべてのユーザー (複数のタブ、複数のユーザー) に対して同期したいと考えています。特定のソケット IO メッセージをリッスンし、useGetAllEmployeesQuery:

というメッセージに基づいて状態変数を更新する単純なリアクティブ フックを作成しました。 リーリー

このイベントがディスパッチされると、RTK refetch() メソッドを呼び出すだけです。

リーリー

したがって、アプリケーション内のあらゆる場所でこれを呼び出す必要があります。たとえば、従業員クエリを使用するコンポーネントが 5 つあるとします。すべてのコンポーネントで refetch を呼び出す必要があります。多くのクエリは 1 回実行するだけで実行できます。 (1回のみ無効)

Redux RTK クエリ設定でそのようなイベントの任意のタイプをサブスクライブすることは可能ですか?

P粉555682718P粉555682718236日前378

全員に返信(1)返信します

  • P粉761718546

    P粉7617185462024-01-30 00:12:10

    クエリを再実行するタグを無効にすることで、サブスクライブされたクエリ をトリガーできます。

    invalidateTags を参照: のキャッシュ タグを手動で無効にし、自動的に を再フェッチするために使用できる Redux アクション クリエーター。

    getAllEmployees エンドポイントが "employees" などのタグを提供すると仮定すると、タグを無効にして useGetAllEmployeesQuery フックをトリガーするアクションをスケジュールできます。データを再取得します。 リーリー リーリー

    UI コードは単純にフックを呼び出し、

    "employees" トークンを useRefetchOnMessage フックに渡します。 リーリー

    返事
    0
  • キャンセル返事