#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()
, это должно обновить запись в кэше — до тех пор, пока она существует.