我有两个API reducers,boardApi和taskApi。
boardApi包含3个查询 getBoards,getBoardById,& addBoard。
taskApi有2个突变,addTask & deleteTask。
如何在每次添加或删除任务时重新获取getBoardById
boardApi
export const apiBoardSlice = createApi({
reducerPath: 'apiBoardSlice',
baseQuery: fetchBaseQuery({
baseUrl: API_URL,
prepareHeaders: headers => headers.set('Authorization', `Bearer ${token}`)
}),
tagTypes: ['Boards'],
endpoints: (builder) => ({
getBoards: builder.query({
query: () => 'board',
providesTags: ['Boards'],
}),
getBoardById: builder.query({
query: (id) => `board/${id}`,
providesTags: ['Boards'],
}),
addBoard: builder.mutation({
query: payload => ({
url: 'board',
method: 'POST',
body: payload,
}),
invalidatesTags: ['Boards'],
}),
}),
})
任务API
export const apiTaskSlice = createApi({
reducerPath: 'apiTaskSlice',
baseQuery: fetchBaseQuery({
baseUrl: API_URL,
prepareHeaders: headers => headers.set('Authorization', `Bearer ${token}`)
}),
endpoints: (builder) => ({
addCard: builder.mutation({
query: ({ listId, title, boardId }) => ({
url: `task/${boardId}`,
method: 'POST',
body: { title, listId },
}),
}),
}),
})
2条答案
按热度按时间798qvoo81#
一般来说,在应用程序中使用两个不同的api的情况很少--这不是其中之一。
两者甚至具有相同的基URL和应用程序逻辑--它们应该是同一API上的多个端点。
至于你的问题:你不能做自动的跨api失效。如果你想从另一个api中失效一个端点,这是一个明显的标志,表明两个端点属于同一个api。
goucqfw62#
不要使用createApi两次。
使用combineReducers,您可以在所有组合reducer中使用所有声明的标记。
因此,您可以在两个任务变化中简单地使用: