昨年末に、Reactを使ってコンポーネント化されたページを書いてみました! ページごとにデータを表示するリストページがあります 3つの主要コンポーネントを表示します: 親コンポーネント listBox、リストコンポーネント List、ボタンコンポーネント PageButton 親コンポーネントリストボックスconst listData = [{ キー:"001", id:"001", タイトル:「Webstorm は GitHub に接続して簡単に倉庫を管理できます」 時間:"2016-12-01", タグ:" git ", 内容:"666666666666666!" }] // 複数のデータに対しても同様です。class listBox extends Component { コンストラクタ(props){ スーパー(小道具); this.pageNext = this.pageNext.bind(this); this.setPage=this.setPage.bind(this); この状態 = { indexList:[], //現在レンダリングされているページデータ totalData:listData, current: 1, //現在のページ番号pageSize:4, //ページあたりに表示される項目数goValue:0, //インデックスへ移動する項目数 totalPage:0, //ページ総数}; } コンポーネントWillMount(){ //ページの総数を設定する this.setState({ totalPage:Math.ceil( this.state.totalData.length/this.state.pageSize), }) this.pageNext(this.state.goValue) } //コンテンツを設定する setPage(num){ this.setState({ インデックスリスト:this.state.totalData.slice(num,num+this.state.pageSize) }) } ページ次 (数値) { this.setPage(数値) } 与える() { 戻る ( <div className="メイン"> <div className="トップバー"> </div> <div className="リスト"> <ul className="インデックス"> {this.state.indexList.map(関数 (続き) { <リスト {...cont} /> を返します。 })} </ul> <PageButton { ...this.state } pageNext={this.pageNext} /> </div> </div> ); } } リストコンポーネントクラスリストはComponentを拡張します{ コンストラクタ(props) { スーパー(小道具); } 与える() { const { idd、タイトル、時間、タグ、内容 } = this.props 戻る ( <li id={idd}> <リンク先={`/list/listmore/${idd}`} > <h3>{タイトル}</h3> <div クラス名="アイコン"> <i className="fa fa-calendar"></i> <span>{time} に公開されました </span> <i className="fa fa-sitemap"></i> <span>{tag} に分類されています</span> <i className="fa fa-edit"></i> <span>まだコメントはありません</span> </div> <p>{コンテンツ}</p> <span className="more">もっと見る</span> </リンク> </li> ); } } ボタンコンポーネント PageButtonクラスpageButtonはComponentを拡張します{ コンストラクタ(props) { スーパー(小道具); this.setNext=this.setNext.bind(this); this.setUp = this.setUp.bind(this); this.state={ 番号: 0, ページ番号:this.props.current } } //次のページ setNext(){ if(this.state.pagenum < this.props.totalPage){ this.setState({ num:this.state.num + this.props.pageSize、 ページ番号:this.state.pagenum + 1 }、関数 () { コンソールログ(この状態) this.props.pageNext(this.state.num) }) } } //前のページsetUp(){ if(this.state.pagenum > 1){ this.setState({ num:this.state.num - this.props.pageSize、 ページ番号:this.state.pagenum - 1 }、関数 () { コンソールログ(この状態) this.props.pageNext(this.state.num) }) } } 与える() { 戻る ( <div className="ページ変更"> <span onClick={ this.setUp } >前のページ</span> <span>{ this.state.pagenum } ページ / { this.props.totalPage } ページ </span> <span onClick={ this.setNext }>次のページ</span> </div> ); } } これで、React でページング モードでデータを表示する方法についての記事は終了です。React でのページング モードに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後も 123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: Win10システムにMySQL 8.0をインストールするときに発生する問題を解決する
>>: Nginxでネットワーク分離を解決した実践記録を詳しく解説
まず解決策を見てみましょう #------------mysql の root ユーザーに権限を付与...
React で国際化を実現するにはどうすればよいでしょうか? react-intlプラグインは、Re...
Linuxファイルを表示する方法ファイルの内容を表示するコマンド: catは最初の行からコンテンツを...
バックアップがあれば、非常に簡単です。最新のバックアップ データを生成し、mysqlbinlog を...
目次テーブル定義の自動増分 ID InnoDBシステムはrow_idを自動的に増加させるシドInno...
テクノロジーの活用itext.jar: バイト ファイル入力ストリームを画像、PDF などに変換しま...
目次埋め込みJavaScriptと外部リンクの基本的な応用JavaScript の記述方法には、イン...
MySQL のインストールについてはインターネット上に多くの記事がありますが、今日ノート PC にイ...
yum install mysql-serverと入力します。続行するにはYを押してくださいインスト...
ブログの正式名称は「Web log」で、中国語で「ネットワークログ」を意味します。後にブログに短縮さ...
0. 環境この記事のオペレーティング システム: CentOS 7.2.1511 x86_64 My...
目次1 コンテナクラウドとは何ですか? 2 Dockerの紹介3 dockerを使ってMySQLをイ...
目次1. 関数を宣言する2. 関数の呼び出し3. 関数パラメータ4. 関数の戻り値5. 議論の使用6...
成果を達成する実装コードhtml <div class="コンテナ">...
以前にも同じような記事を書いたことがありますが、js スクリプトを使用しており、ファイルパスを表示で...