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

React-Admin AutocompleteInput仅显示前1000个选项解决方法

问题定性

这个表现是react-admin框架的预期性能保护设计,不属于bug。
框架默认对AutocompleteInput、SelectInput这类选项型输入组件设置1000条的渲染截断阈值,目的是避免一次性渲染过量DOM节点导致页面卡顿、交互延迟,传入静态选项数组时默认会直接截取前1000条渲染。

复现场景

开发relatedPages功能时,传入超过1000条数据的静态选项数组的写法如下:

<ArrayInput source="pages">
  <SimpleFormIterator>
    <AutocompleteInput
      source="id"
      choices={relatedPages}
    />
  </SimpleFormIterator>
</ArrayInput>

预期效果为可选择静态数组内的任意条目,实际仅能选择前1000个条目,相同问题在SelectInput组件上同样存在。

调整默认上限的方法

直接给对应输入组件传入choicesOptions配置项,自定义截断阈值即可,不需要修改框架源码:

  • 若需要将上限调整为指定数值,比如5000条,在配置中给getLimit返回对应数值即可
  • 若需要完全放开数量限制(非必要不推荐,选项总量过大会大幅提升页面渲染开销,导致交互卡顿),可将getLimit返回值设为Number.MAX_SAFE_INTEGER
  • SelectInput组件的调整逻辑和上述写法完全一致,传入相同的choicesOptions配置即可生效

调整后的代码示例:

<ArrayInput source="pages">
  <SimpleFormIterator>
    <AutocompleteInput
      source="id"
      choices={relatedPages}
      choicesOptions={{
        getLimit: () => 5000 // 全量放开可替换为 Number.MAX_SAFE_INTEGER
      }}
    />
  </SimpleFormIterator>
</ArrayInput>

提示:如果可用选项总量超过2000条,更推荐使用异步远程搜索的模式按需加载匹配的选项,不要全量传入静态选项数组,能大幅降低前端渲染压力。

编号7880的相关问题记录中,官方团队也确认了该默认配置的设计逻辑,上述调整方案为官方推荐方案。

内容的提问来源于stack exchange,提问作者J.Br

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 20:48:19