redux-toolkit
redux-toolkit copied to clipboard
Feat/4644 tags invalidation improvements
Description
Closes #4644
The following public rtk query APIs now supports undefined
or null
tags:
- api.util.invalidateTags
- api.util.selectInvalidatedBy
- mutationDefinition.invalidateTags
Example nullish invalidate tags in mutation definition
const api = createApi({
baseQuery,
tagTypes: ['Banana'],
endpoints: (build) => ({
getBanana: build.query<unknown, number>({
query(id) {
return { url: `banana/${id}` }
},
providesTags: ['Banana'],
}),
getBananas: build.query<unknown, void>({
query() {
return { url: 'bananas' }
},
providesTags: ['Banana'],
}),
invalidateFruit: build.mutation({
query: (fruit?: 'Banana' | null) => ({ url: `invalidate/fruit/${fruit || ''}` }),
invalidatesTags(result, error, arg) {
return [arg] // arg now can also be undefined or null
}
})
}),
})
api.utils.invalidateTags
store.dispatch(api.util.invalidateTags(["Bread", params?.id]))
api.util.selectInvalidatedBy
store.dispatch(api.util.selectInvalidatedBy(["Bread", params?.id]))
Notes
Paired with @FaberVitale