javascript RTK查询:如何将数据存储到特定的状态路径,而忽略动态参数

a2mppw5e  于 2023-05-27  发布在  Java
关注(0)|答案(1)|浏览(157)

现在,我正在使用Redux Toolkit Query从API获取数据。但是该API要求每次发送请求时在查询参数中添加新签名。如下面的代码所示:

export const restApi = createApi({
  reducerPath: "restApi",
  baseQuery: fetchBaseQuery({ baseUrl: 'https://pokeapi.co/api/v2/pokemon/' }),
  endpoints: (builder) => ({
    getPokemonByName: builder.query({
      query: ({ name, signature }) => `${name}?signature=${signature}`
    }),
  }),
});

哪个redux会将其保存在不同的状态路径中,如下图x1c 0d1x
我的问题是,如何让rtk-query忽略签名参数,只更新同名请求的状态?

vc6uscn9

vc6uscn91#

在查询端点上有一个serializeQueryArgs属性,它允许提供“基于查询参数的自定义缓存键值”。这似乎正是你所要求的。
示例:

export const restApi = createApi({
  reducerPath: "restApi",
  baseQuery: fetchBaseQuery({ baseUrl: 'https://pokeapi.co/api/v2/pokemon/' }),
  endpoints: (builder) => ({
    getPokemonByName: builder.query({
      query: ({ name, signature }) => `${name}?signature=${signature}`,
      serializeQueryArgs: ({ queryArgs }) => {
        const { name } = queryArgs;
        return { name }; // omit `signature` from the cache key
      },
    }),
  }),
});

相关问题