昨年末に、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でネットワーク分離を解決した実践記録を詳しく解説
目次複数の変数を同時に宣言する場合は、1 行に短縮できます。分割代入は複数の変数に同時に値を割り当て...
1. MySQL ダウンロード アドレス。 http://ftp.ntu.edu.tw/MySQL...
通常、ユーザーがアップロードした写真はデータベースに保存する必要があります。一般的に、解決策は 2 ...
目次1. 要件の説明2. アイデアの概要1. 延長を要求する2. アイデアの概要3. SQLコード1...
1.画像をダウンロードするdocker pull selenium/hub docker pull ...
最初の方法: skip-grant-tables: 非常に便利なmysql起動パラメータ非常に便利な...
VMware仮想マシンでのCentos7ブリッジネットワーク構成の完全な手順は参考用です。具体的な内...
私は数年間 vi エディタを使ってきましたが、実用的な用途で使ったことはありませんでした。今日 Py...
最初の方法: デモとしてボタンをクリックしてテキストを表示または非表示にするクラスを動的に追加します...
日常業務では、次のようなレイアウトに遭遇することがあります。親要素のフレーム (ブラウザのサイズに応...
1. 概要ネットでいろいろ検索してみたところ、Linux システム向けではなく、現在の新しいバージ...
目次1. 背景: 2. デザインのアイデア: 3. 起動スクリプトを書く4. イメージを構築する5....
目次1. GRUB暗号化とは何か2. grub暗号化手順3. grub暗号化のロック属性1. GRU...
IPSec の概要IPSec (インターネット プロトコル セキュリティ): ネットワーク層と適用さ...
競合の主な症状は、FLASH ボタンがジャンプし続け、不安定になり、Web ページの外観と通常のアク...