reactjs - react : Reactstrap pagination active not working inside loop

标签 reactjs reactstrap

我想在状态==循环索引时将项目设置为事件状态。但我每次都变得虚假。

        constructor(props) {
          super(props);
          this.state = {
            currentPage: this.props.currentPage
          };
         }
       render() {
            var lis = [];
            for (var i=1; i <= this.props.totalPages; i++) {
              lis.push(
                <PaginationItem
                  key={i}
                  active={
                    this.state.currentPage === {i} ? true : false
                  }
                >
                  <PaginationLink href="javascript:void(0)" onClick={this.handlePageClick.bind(this, i)} >
                    {i}
                  </PaginationLink>
                </PaginationItem>
              );
            }
}

最佳答案

问题是您正在根据 constructor 中的 props 设置状态,并且如果 props 发生更改,它不会更新,您需要更新 componentWillReceiveProps 中的状态功能也。但是,您可以直接使用 props,而不需要将其设置为 state。还可以使用 let 而不是 var 进行迭代器声明,以避免闭包

   render() {
        var lis = [];
        for (let i=1; i <= this.props.totalPages; i++) { // use let here to avoid closure
          lis.push(
            <PaginationItem
              key={i}
              active={
                this.props.currentPage === i ? true : false
              }
            >
              <PaginationLink href="javascript:void(0)" onClick={this.handlePageClick.bind(this, i)} >
                {i}
              </PaginationLink>
            </PaginationItem>
          );
        }
        // more code here
     }

关于reactjs - react : Reactstrap pagination active not working inside loop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49550038/

相关文章:

javascript - 如何从父组件打开或关闭 reactstrap 模态

mysql - 将 React 对象插入 sequelize/MySQL 数据库时遇到问题

javascript - 影响Reactjs中复选框的文本点击

javascript - 使用react-csv进行API调用

reactjs - Reactstrap - create-react-app - 未找到 bootstrap/dist/css/bootstrap.css - v.4

javascript - 在悬停reactjs上显示菜单

reactjs - 如何在reactstrap Dropdown中设置所选项目?

javascript - React Native,无法使用异步存储正确存储和获取数据

javascript - 我如何在 Reactjs 应用程序上安装 LESS css?

javascript - 如何在某个特定组件发出某些内容时让其他组件监听,包括 Stackblitz 演示