2017-09-13 11 views
0

ページングのすべてのクリックハンドラでページの最大サイズを受信して​​います(たとえば、2をクリックすると、ハンドラパラメータとして4を受信して​​います)。このコードで何が問題になっていますか?ReactJSページングコントロールを実装する際に問題が発生しました

UPDATE

class PagingControl extends React.Component{ 

    constructor(props) { 
     super(props); 

     this.state = {pageNumber:0, pageSize:20, totalPages:0}; 
     this.handlePageChanged = this.handlePageChanged.bind(this); 
    } 

    handlePageChanged(pageNumber){ 
     this.setState({pageNumber: pageNumber}) 
     this.props.handlePageChanged(pageNumber); 
    } 

    render(){ 

     const pages = []; 
     for(var pageNumber=0 ; pageNumber<this.state.totalPages ; pageNumber ++){ 
      var opts={} 
      if(pageNumber == this.state.pageNumber){ 
       opts['className'] = 'active'; 
      } 
      pages.push(<li onClick={() => this.handlePageChanged(pageNumber)} {...opts}><a href="#">{pageNumber + 1}</a></li>); 
     } 

     return (<ul className="pagination pagination-lg">{pages}</ul>); 
    } 
} 
+0

するループのためにvar pageNumber=0を変更し、解決策を見つけました。このように: 'onClick = {()=> this.handlePageChanged.bind(this、pageNumber)}' – Chris

+0

@Chrisおかげさまで、私はすでにhandlePageChangedハンドラを定義して、それを再利用したいと思います。解読の更新 –

答えて

0

私はちょうどあなたがあなたのハンドラにあなたのページ番号をバインドする必要があると思いlet pageNumber=0

関連する問題