当前位置: 首页 > 知识库问答 >
问题:

javascript - react.query怎么在onSuccess中获取请求参数?

萧元徽
2023-09-13
 queryClient.setQueryDefaults('list', {    queryFn: async ({ queryKey }) => {      const [, page, pageSize] = queryKey as ListQueryKey;      return await getSomeThing({ page, size: pageSize});    },    onSuccess: (data, variables, context) => {      const previousData = queryClient.getQueryData('list'); // 获取之前的数据      const page = variables[1]; // 从查询键中获取 page 参数      // 判断 page 是否等于 1,如果是,则替换之前的数据,否则合并新数据      if (page === 1) {        queryClient.setQueryData('list', data); // 替换之前的数据      } else if (previousData) {        // 合并新数据到之前的数据中        queryClient.setQueryData('list', [...previousData, ...data]);      }    },  });

上面的代码中,我需要在onSuccess中获取page的值,但是onSuccess的参数只有data,没有variables,react-query的版本是3.29,请问怎么解决。

共有1个答案

隆长卿
2023-09-13
queryClient.setQueryDefaults('list', {  queryFn: async ({ queryKey }) => {    const [, page, pageSize] = queryKey as ListQueryKey;    const data = await getSomeThing({ page, size: pageSize});    return { data, page }; // 把 page 参数和数据一起返回  },  onSuccess: (data, variables, context) => {    const previousData = queryClient.getQueryData('list'); // 获取之前的数据    const page = context.page; // 从 context 中获取 page 参数    // 判断 page 是否等于 1,如果是,则替换之前的数据,否则合并新数据    if (page === 1) {      queryClient.setQueryData('list', data.data); // 替换之前的数据    } else if (previousData) {      // 合并新数据到之前的数据中      queryClient.setQueryData('list', [...previousData, ...data.data]);    }  },});
 类似资料:
  • 问题内容: 如何从JavaScript请求中获取“ GET”变量? 是jQuery还是YUI!内置此功能吗? 问题答案: 所有数据均在 您必须解析字符串,例如。 只需以GET变量名作为参数调用该函数,例如。 如果变量没有值或不存在,则此函数将返回变量value或undefined

  • 问题内容: 如何在Jinja2模板中检索请求参数? 问题答案: 我对这个答案有些迟,但是其他解决方案并不能真正解决你使用Flask的问题。 将Flask与Jinja2一起使用的事实使你的情况与其他框架有所不同。Flask实际上使所有Jinja2模板中都可以使用一些全局变量,而无需你将它们显式传递给模板。 在http://flask.pocoo.org/docs/templating/#standa

  • 问题内容: 我有一个组件。在其中,我在组件中有一个页面。我要访问的值从页面(一个inputText的或单选按钮的)在我的管理bean类。请指导我如何去做。请在这里注意,我不想在这里使用会话。我只需要请求。我尝试了以下选项,但它们对我没有用。 选项一 选项二 选项三 选项四 选项五 我希望该值不在jsp的托管bean中……但我希望在另一个托管bean中获得。在这里,我在页面内有页面(正如我之前提到的

  • 主要内容:通过 HttpServletRequest 获取请求参数,通过形参获取请求参数,使用 @RequestParam 注解获取,通过实体类对象获取(推荐),解决获取请求参数的乱码问题Spring MVC 提供了多种获取请求参数的方式: 通过 HttpServletRequest 获取请求参数 通过控制器方法的形参获取请求参数 使用 @RequestParam 注解获取请求参数 通过实体类对象获取请求参数(推荐) 下面我们就对这些获取请求参数的方式一一进行介绍。 通过 HttpServlet

  • 我需要帮助发送请求到FTP服务器下载文件...我已经写了下面的代码下载一个文件使用HTTP它工作成功,但我不知道如何做一个FTP.....由于我已经使用套接字来建立连接,它必须通过这种方式来完成,请建议我下载一个FTP文件的请求(发送到服务器)的格式是什么...... ///////////////编码////////////////////////////////////////////////

  • 下图这是这个页面的所有代码,我想像vue的mounted一样,刚进页面就请求接口,请问我该怎么写? 另外,这应该属于是typescript吧?完全看不懂一脸懵 并且,我的接口不是固定地址,后端那可能会上传到不同的服务器,如何像vue一样配置proxy? 在这里先谢谢各位大哥大姐的解答,小弟感激不尽!