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

React应用中如何给API调用传入默认page.size参数

如何在API调用中正确设置pageable的size参数?

你当前的写法有两个核心问题:一是在对象字面量的属性值位置写了赋值表达式DEFAULT_PAGEABLE.page.size = 7,这不符合JavaScript对象的语法规范,直接导致参数传递失效;二是这种写法会直接修改全局的DEFAULT_PAGEABLE对象,很可能影响其他地方的API调用逻辑。

给你几种靠谱的解决方式,根据你的实际需求选择:

1. 推荐:创建新的pageable对象(不修改原默认配置)

这种方式不会改动原有的DEFAULT_PAGEABLE,避免全局副作用,是最安全的做法:

Promise.all([
  api.solutionForms.search({
    pageable: { ...DEFAULT_PAGEABLE.page, size: 7 }, // 解构原page属性,覆盖size为7
    statuses: [SolutionFormStatus.APPROVAL_REQUIRED.name]
  }),
]).then(values => {
  const [ solutionformsRequiringAction ] = values;
  this.setState({ 
    loading: false, 
    solutionformsRequiringAction: solutionformsRequiringAction
  });
});

原理是用对象扩展运算符...把DEFAULT_PAGEABLE.page的所有属性复制到新对象里,然后单独指定size:7来覆盖原有的值,这样传入API的就是一个全新的、符合你需求的page配置。

2. 不推荐:直接修改原默认配置(仅当全局都需要这个size时用)

如果你确定所有地方都需要把默认size改成7,或者临时修改不会影响其他逻辑,可以先修改原对象再传入:

// 先修改全局默认配置的size
DEFAULT_PAGEABLE.page.size = 7;

Promise.all([
  api.solutionForms.search({
    pageable: DEFAULT_PAGEABLE.page,
    statuses: [SolutionFormStatus.APPROVAL_REQUIRED.name]
  }),
]).then(values => {
  const [ solutionformsRequiringAction ] = values;
  this.setState({ 
    loading: false, 
    solutionformsRequiringAction: solutionformsRequiringAction
  });
});

⚠️ 注意:这种方式会永久改变DEFAULT_PAGEABLE的size值,后续其他调用这个默认配置的地方都会用7作为size,所以除非你明确要全局修改,否则别用这个方法。

3. 如果API需要完整的Pageable对象(包含page等子属性)

如果你的pageable参数是一个包含page子对象的完整结构,就需要深层解构复制:

Promise.all([
  api.solutionForms.search({
    pageable: { 
      ...DEFAULT_PAGEABLE, 
      page: { ...DEFAULT_PAGEABLE.page, size: 7 } 
    },
    statuses: [SolutionFormStatus.APPROVAL_REQUIRED.name]
  }),
]).then(values => {
  const [ solutionformsRequiringAction ] = values;
  this.setState({ 
    loading: false, 
    solutionformsRequiringAction: solutionformsRequiringAction
  });
});

这样既保留了原DEFAULT_PAGEABLE的其他属性,又单独修改了page.size的值。

内容的提问来源于stack exchange,提问作者Baba

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:48:58