是否可以在一个新的不存在的查询-RTK查询上更新QueryData



我用RTK Query创建了一个api,我有一个悲观地更新其他查询的创建端点:

create: builder.mutation<
{ id: string },
Req
>({
query: (req) => ({
url: "",
method: "POST",
body: req,
}),
async onQueryStarted(req, { dispatch, queryFulfilled }) {
try {
const {
data: { id },
} = await queryFulfilled;

dispatch(
apiSvc.util.updateQueryData(
"getFoos",
{ specialId: req.specialId },
(draft) => {
draft.unshift({
...req,
id
});
}
)
);
dispatch(
apiSvc.util.updateQueryData(
"getSingleFoo",
{ specialId: req.specialId, otherSpecialId: req.otherSpecialId },
(draft) => {
Object.assign(draft, {
...req,
id
});
}
)
);
} catch (e) {
console.error(e);
}
},
}),

但是更新getSingleFoo并不能正确地更新缓存值,只有getFoos被更新。

有可能做到这一点吗?如果是,怎么办?

如果有人想知道这里,我在回购中问过。