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

React使用@material-ui/lab Pagination实现带省略号的分页效果

@material-ui/lab分页组件实现页码省略折叠方法

问题描述

基于React实现分页功能时,使用@material-ui/lab的Pagination组件默认渲染全部页码,需要配置为超出展示范围的页码自动以...折叠省略的效果。
现有App.js核心实现代码:

const App = () => {
  const [workstations, setWorkstations] = useState([]);
  let [page, setPage] = useState(1);
  const PER_PAGE = 1;

  useEffect(() => {
    loadWorkstations();
  }, []);

  const loadWorkstations = async () => {
    const request = await getWorkstations();
    const result = request.data;
    setWorkstations(result);
  };

  const count = Math.ceil(workstations.length / PER_PAGE);
  const _DATA = usePagination(workstations, PER_PAGE);

  const handleChange = (e, p) => {
    setPage(p);
    _DATA.jump(p);
  };

  return (
    <Pagination
      count={count}
      size="large"
      page={page}
      variant="outlined"
      color="primary"
      onChange={handleChange}
    />
  );
};

实现方式

Pagination组件原生支持页码折叠能力,无需额外编写自定义逻辑,只需新增两个配置属性:

  • siblingCount:控制当前选中页码两侧展示的相邻页码数量,常规场景设为1即可
  • boundaryCount:控制分页栏首尾固定展示的页码数量,常规场景设为1即可

修改后的Pagination组件代码:

<Pagination
  count={count}
  size="large"
  page={page}
  variant="outlined"
  color="primary"
  onChange={handleChange}
  siblingCount={1}
  boundaryCount={1}
/>

配置完成后,组件会自动在页码超出展示范围时插入省略号,达到预期折叠效果。如果需要调整可见页码的数量,直接修改两个属性的数值即可。

版本提示:siblingCount和boundaryCount属性在@material-ui/lab4.0.0-alpha.40及以上版本正式支持,若配置后不生效请先升级依赖版本。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 10:06:36