我正在为我的应用程序的 API 请求使用 RTK 查询。到目前为止,一切都很顺利!我已经按照文档来提供标签并使它们无效,但我面临着一种奇怪的行为。以下是两个相关端点的代码:
export const api = createApi({
/*** code omitted for brevity ***/
tagTypes: ["Post"],
endpoints: (builder) => ({
getPost: builder.query({
query: (id) => ({
url: `posts/${id}`,
method: "GET",
}),
providesTags: (result, error, id) => [{ type: "Post", id }],
}),
bookmarkPost: builder.mutation({
query: (id) => ({
url: `posts/bookmark/${id}`,
method: "POST",
}),
invalidatesTags: (result, error, id) => [{ type: "Post", id }],
}),
}),
});
现在获取数据工作得很好。但是,当bookmarkPost
请求成功时,标记getPost
不会自动重新获取。
getPost
仅当我手动设置id
属性时,标记才有效。例如[{ type: "Post", id: "TOPIC" }]
. 或者,如果我将标签作为一个整体定位["Post"]
我的数据库中的id
部分是 aGuid
所以我怀疑这可能是一个问题(假设文档说明id
应该是字符串或数字)并且我将其规范化为不带破折号的字符串。但即使这样做也不会触发失效。
我在这里错过了什么吗?