2017-09-13 2 views
0

Ich erhalte die maximale Größe der Seiten in jedem Click-Handler des Paging (zum Beispiel wenn ich 2 anklicke Ich erhalte 4 als Handler-Parameter). Was ist mit diesem Code falsch?Probleme bei der Implementierung von ReactJS Paginierungskontrolle

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

Sie bräuchten Ihre Seitennummer an Ihren Handler zu binden. Wie folgt: 'onClick = {() => this.handlePageChanged.bind (this, pageNumber)}' – Chris

+0

@Chris Danke, ich habe meinen handlePageChanged-Handler bereits definiert und möchte ihn wiederverwenden. Aktualisierung der Beschreibung –

Antwort

0

ich die Lösung gefunden, nur var pageNumber=0 in for-Schleife geändert werden let pageNumber=0

Verwandte Themen