我的应用程序必须从3个不同的服务器获取数据,它们都连接到同一个数据库。因此,我将代码拆分为3个不同的createAPI,并使用不同的reducer路径,然而,如果我从API A编辑PUT,似乎无法使用refetch,但API B也需要刷新。
我无法更改服务器的布局,因为这是我们的后端服务器架构。
export const commonApi = createApi({
reducerPath: "commonApi",
baseQuery: commonBaseQuery, //URL: common.dev.example.com
endpoints: () => ({}), //later injected
tagTypes: ["SCHEME_LIST", "SCHEME_DETAIL"],
});
export const taskApi = createApi({
reducerPath: "taskApi",
baseQuery: taskBaseQuery, //URL: task.dev.example.com
endpoints: () => ({}), //later injected
tagTypes: ["LIST", "DETAIL"]
});
export const addressApi = createApi({...}) // omitted, same as above with different url
现在,如果我使用突变查询
editTask
从…起
taskAPI
。需要更新
getTaskList
,
getTaskDetail
从…起
taskAPI
。通过使用
invalidatesTags: ['LIST', 'DETAIL']
我可以自动获得更改。
然而,在此期间
编辑任务
,API
getWarehouseList
从…起
commonAPI
也需要更新以反映一些变化。我不能再使用标签了,因为它们不属于同一个createApi/reducerPath
问题是我该如何更新
获取仓库列表
从…起
commonAPI
什么时候
编辑任务
从…起
taskAPI
做出改变?或者唯一的方法是执行unwrap().then(),然后手动重新绘制这些数据?