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



如果我从这个方法中得到错误,我不想重新蚀刻REFETCH_TYPE_LIST

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

我能想到的是,只要满足这个条件,也许还有另一个更好的解决方案?

您总是可以编写一个自己更可读的抽象,例如:

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] }),
}),

最新更新