You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 02:03:18