rtk-query,当我们收到错误时不要使Tags失效

Ros*_*tyk 1 rtk-query

REFETCH_TYPE_LIST如果我从此方法中收到错误,我不想重新获取

dosomething: builder.mutation<void, number>({
  query: (id) => ({
    url: `api`,
    method: 'PATCH',
  }),
  invalidatesTags: (result) => (result ? ['REFETCH_TYPE'] : []),
}),
Run Code Online (Sandbox Code Playgroud)

我能想到的就是满足这个条件,也许还有其他更好的解决方案?

phr*_*hry 5

您始终可以编写一个对自己来说更具可读性的抽象,例如:

function invalidateOn<T>({success: T[] = [], error: T[] = []}) {
  return (result: unknown) => result ? success : error
}


dosomething: builder.mutation<void, number>({
  query: (id) => ({
    url: `api`,
    method: 'PATCH',
  }),
  invalidatesTags: invalidateOn({ success: ['REFETCH_TYPE' as const] }),
}),
dosomethingElse: builder.mutation<void, number>({
  query: (id) => ({
    url: `api`,
    method: 'PATCH',
  }),
  invalidatesTags: invalidateOn({ success: ['REFETCH_TYPE' as const], error: ['SOMETHING_ELSE' as const] }),
}),
Run Code Online (Sandbox Code Playgroud)