您可以使用 redux 工具包钩子从 redux 存储中获取数据
useQueryState
const useQueryStateResult = api.endpoints.getPosts.useQueryState(arg, options)
这个属性.useQueryState只存在于查询中,如果我们稍后想知道突变的结果,该使用什么?
我在 POST 请求返回新创建实体的 id 的用例中遇到了这个问题。
我通过选择api状态本身粗略地解决了这个问题:
const last = useAppSelector(state => {
return Object.values(state.api.mutations).reduce((acc, val) => {
if(val?.endpointName === "ENDPOINT_NAME") {
if(!acc || !acc.fulfilledTimeStamp) {
return val;
} else {
if(val.fulfilledTimeStamp && val.fulfilledTimeStamp > acc.fulfilledTimeStamp) {
return val;
}
}
}
return acc;
}, undefined);
});
仍然有很多优化的可能,例如还考虑
startedTimestamp
,其他条件,也可以使用更简洁更简写来编写。