Керування станом · Senior · Запитання 51 з 75

Як записувати оновлення з WebSocket у запис кешу RTK Query?

async onCacheEntryAdded(arg, { updateCachedData, cacheDataLoaded, cacheEntryRemoved }) {
  await cacheDataLoaded;
  const ws = new WebSocket(url);
  ws.onmessage = (e) => updateCachedData((draft) => { draft.push(JSON.parse(e.data)); });
  await cacheEntryRemoved;
  ws.close();
}

Пояснення

Сокет живе рівно стільки, скільки на запис кешу підписаний хоч один компонент, а оновлення йдуть через чернетки Immer, як і інші оновлення кешу.

Де почитати

Помилка в запитанні

Керування станом · Senior · запитання 51

Перевірте себе

Пройдіть тест Керування станом · Senior: запитання й варіанти перемішуються, а наприкінці - розбір помилок.

Пройти цей тест