执行Mutation后如何获取baseQuery返回的meta字段?
获取RTK Query Mutation返回的meta字段
要拿到baseQuery返回的meta字段,你需要在定义mutation时通过transformResponse把meta和data一起打包返回,具体操作如下:
修改mutation定义:
在createApi的mutations配置中,给目标mutation添加transformResponse,将baseQuery返回的data与meta合并为一个对象返回:export const api = createApi({ baseQuery: yourBaseQuery, // 你原本的baseQuery配置 endpoints: (builder) => ({ addPost: builder.mutation({ query: (post) => ({ url: '/posts', method: 'POST', body: post, }), // 核心配置:把meta和data一起返回 transformResponse: (data, meta) => { return { data, meta }; }, }), }), }); export const { useAddPostMutation } = api;调用时获取meta:
现在调用addPost后,返回的结果里就会包含预期的meta字段:const handleAddPost = async () => { const result = await addPost(post); console.log(result); // 输出:{ data: {...}, meta: { ... } } }
如果希望所有mutation都能自动拿到meta,也可以直接修改自定义baseQuery,统一把meta和data合并后返回:
const customBaseQuery = async (args, api, extraOptions) => { const result = await fetchBaseQuery({...})(args, api, extraOptions); // 合并data与meta if (result.data) { result.data = { data: result.data, meta: result.meta }; } return result; };
内容的提问来源于stack exchange,提问作者Mxcpanel
相关产品推荐
相关产品推荐

