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

react-bootstrap中Pagination组件循环渲染报错该如何解决?

错误原因

报错是因为你在JSX的{}中传入了未执行的匿名函数,React会把函数本身当成子元素渲染,不符合要求;同时for循环本身没有返回值,即使执行函数也无法拿到完整的页码组件列表。

正确实现方式

方案1:数组map渲染(React标准推荐写法)

直接生成指定长度的数组,通过map遍历返回页码组件:

<Pagination size="sm">
  <Pagination.First />
  <Pagination.Prev />
  {Array.from({ length: meta.last_page }, (_, idx) => idx + 1).map(page => (
    <Pagination.Item key={page} active={page === currentPage}>
      {page}
    </Pagination.Item>
  ))}
  <Pagination.Next />
  <Pagination.Last />
</Pagination>

注意必须给循环生成的组件加唯一key属性,active属性用来绑定当前选中的页码,替换为你自己存储当前页码的状态变量即可实现高亮效果。

方案2:提前用for循环构造组件数组

如果习惯用for循环,可以先在渲染逻辑外把页码组件存入数组,再直接传入JSX:

// 组件内部渲染逻辑前先构造页码数组
const pageItemList = []
for(let page = 1; page <= meta.last_page; page++){
  pageItemList.push(
    <Pagination.Item key={page} active={page === currentPage}>
      {page}
    </Pagination.Item>
  )
}

// 渲染时直接使用数组
<Pagination size="sm">
  <Pagination.First />
  <Pagination.Prev />
  {pageItemList}
  <Pagination.Next />
  <Pagination.Last />
</Pagination>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 09:30:04