Оптимистичные обновления для создания элемента в запросе RTK

#reactjs #redux #redux-toolkit #rtk-query

#реагирует на #возвращение #redux-инструментарий #rtk-запрос

Вопрос:

Не могу понять, как заставить оптимистичные обновления работать должным образом, когда я создаю новый элемент, а не обновляю существующий.

Оптимистичные обновления работают, но если я переключусь в автономный режим, patchResult.undo() добавленный элемент не будет удален.

Также было бы неплохо иметь пример оптимистичного удаления элементов

Вот мой код

 createMessagesItem: builder.mutationlt;void, Omitlt;IMessagesItem, '_id'gt;gt;({  query: (payload) =gt; ({  url: `messages`,  method: 'POST',  body: payload,  }),   async onQueryStarted(patch, { dispatch, queryFulfilled }) {  const patchResult = dispatch(  storageApi.util.updateQueryData('getMessages', undefined, (draft) =gt; {  draft.push({ ...patch, _id: '' });  })  );   try {  await queryFulfilled;  } catch {  patchResult.undo();  }  },   invalidatesTags: ['Messages'],  }),  

Комментарии:

1. Предполагая , что вы позвонили useGetMessagesQuery(undefined) или useGetMessagesQuery() , это должно обновить запись в кэше — до тех пор, пока она существует.