1.页面的结构

  1. //遍历list, 返回数据
  2.       let listBody= this.state.list.map((user,index)=> {
  3.           return (
  4.            <tr key={index}>
  5.              <td>{user.id}</td>
  6.              <td>{user.username}</td>
  7.              <td>{user.email}</td>
  8.              <td>{user.phone}</td>
  9.              <td>{new Date(user.createTime).toLocaleString()}</td>
  10.          </tr>
  11.        )
  12.       });
  13.       //当this.state.list.length<=0,第一次加载的时候firstLoading=true,显示"正在加载数据"
  14.       //当this.state.list.length<=0,第一次加载的时候firstLoading=false,显示"正在加载数据"
  15.       let listError=(
  16.           <tr>
  17.               <td colSpan="" className="text-center">
  18.                 {this.state.firstLoading ?"正在加载数据....." : "没有找到相应的结果"}
  19.               </td>
  20.           </tr>
  21.       )
  22.       let tableBody=this.state.list.length > 0 ? listBody:listError;
  23.      return (
  24.         <div id="page-wrapper">
  25.               <PageTitle title="用户列表"/>
  26.               <div className="row">
  27.                   <table className="table table-striped table-bordered">
  28.                       <thead>
  29.                           <tr>
  30.                               <th>ID</th>
  31.                               <th>用户名</th>
  32.                               <th>邮箱</th>
  33.                               <th>电话</th>
  34.                               <th>注册时间</th>
  35.                           </tr>
  36.                       </thead>
  37.                       <tbody>
  38.                           {
  39.                             tableBody
  40.                           }
  41.                       </tbody>
  42.                   </table>
  43.               </div>
  44.               {/* 分页组件 */}
  45.               <Pagination current={this.state.pageNum}
  46.               total={this.state.total}
  47.               onChange={(pageNum) => {this.onPageNumChange(pageNum)}}/>
  48.         </div>
  49.      );

2.用户列表接口/manage/user/list.do ,请求数据为,pageNum和pageSize, pageSize默认为10,所以只需要传入当前页pageNum就可以了

  1. this.state={
  2.            list:[],
  3.            pageNum:1,
  4.            //判断是不是第一次加载
  5.            firstLoading:true
  6.        }

请求后台数据

  1. //当页码挂载之后请求数据
  2.     componentDidMount(){
  3.        this.loadUserList();
  4.     }
  1. loadUserList(){
  2.        _user.getUserList(this.state.pageNum).then(res => {
  3.            //res替换了state
  4.            this.setState(res,() => {
  5.                //第一次加载的时候把firstLoading设置为false
  6.                this.setState({
  7.                   firstLoading:false
  8.                })
  9.            });
  10.        },errMsg =>{
  11.             this.setState({
  12.                 list : []
  13.             });
  14.             _mm.errorTips(errMsg);
  15.        })
  16.     }

3.当页码改变的时候触发onChange事件,调用onPageNumChange函数,传入当前页pageNum,更新state里边的pageNum

  1. //当页数变化的时候改变pageNum
  2.  onPageNumChange(pageNum){
  3.      //setSate是个异步函数
  4.      this.setState({
  5.          pageNum : pageNum
  6.      },() => {
  7.          //当页码更新了重新请求每页的记录,后台返回数据是根据页码返回的
  8.          this.loadUserList();
  9.      })
  10.  }

React后台管理系统-用户列表页面的更多相关文章

  1. React后台管理系统-商品列表搜索框listSearch组件

    1.商品列表搜索框 2.搜索框页面的结构为 <div className="row search-wrap">               <div classN ...

  2. React后台管理系统-table-list组件

    table-list组件可用于商品列表,用户列表页面 需要传入一个tableHeads集合和tablebody import React from 'react';   // 通用的列表 class ...

  3. React后台管理系统- rc-pagination分页组件封装

    1.用户列表页面使用的rc-pagination分页组件 Github地址: https://github.com/react-component/pagination 2.安装 cnpm insta ...

  4. 《React后台管理系统实战 :一》:目录结构、引入antd、引入路由、写login页面、使用antd的form登录组件、form前台验证、高阶函数/组件

    实战 上接,笔记:https://blog.csdn.net/u010132177/article/details/104150177 https://gitee.com/pasaulis/react ...

  5. 《React后台管理系统实战 :二》antd左导航:cmd批量创建子/目录、用antd进行页面布局、分离左导航为单独组件、子路由、动态写左导航、css样式相对陷阱

    一.admin页面布局及路由创建 0)cmd批量创建目录及子目录 //创建各个目录,及charts和子目录bar md home category product role user charts\b ...

  6. React后台管理系统-商品管理列表组件

    1.商品列表页面结构 <div id="page-wrapper">              <PageTitle title="商品列表" ...

  7. react后台管理系统路由方案及react-router原理解析

        最近做了一个后台管理系统主体框架是基于React进行开发的,因此系统的路由管理,选用了react-router(4.3.1)插件进行路由页面的管理配置. 实现原理剖析 1.hash的方式   ...

  8. 【共享单车】—— React后台管理系统开发手记:主页面架构设计

    前言:以下内容基于React全家桶+AntD实战课程的学习实践过程记录.最终成果github地址:https://github.com/66Web/react-antd-manager,欢迎star. ...

  9. 【共享单车】—— React后台管理系统开发手记:Router 4.0路由实战演练

    前言:以下内容基于React全家桶+AntD实战课程的学习实践过程记录.最终成果github地址:https://github.com/66Web/react-antd-manager,欢迎star. ...

随机推荐

  1. 项目经验:Glyphicons字体图标改造,制造适合自己项目的字体图标

    Bootstrap对我们来说已经不陌生了,大型的项目一定会用到它.它的DOM结构,字体图标,组件,响应式布局等,很大程度上提高了WEB开发速度. 在bootstrap刚出来的时候,它拥有丰富的组件.美 ...

  2. string类型的方法

    var str1 = ' this is string1 '; var str2 = 'this is string2'; str1.indexOf('s'); //args:string retur ...

  3. 牛客练习赛43D(贪心)

    有生之年我居然也能不看题解做出来题QAQ-- 发现c.d是0.1序列而不是随机数列说明有蹊跷,于是发现负数直接配0,正数配1即可.不知道哪个最小,那就全求一下吧--我的做法的坑点是数正好为1时不可以选 ...

  4. mysql中 if语句的使用

    Mysql的if既可以作为表达式用,也可在存储过程中作为流程控制语句使用,如下是做为表达式使用: IF(expr1,expr2,expr3) IF表达式 代码如下: 如果 expr1 是TRUE (e ...

  5. 练习十六:Python日期格式应用(datetime)

    练习:关于python日期格式应用练习.用python方法如何输出指定格式形式的日期 这里用到datetime模块,datetime模块重新封装了time模块,提供了更多接口,提供的类包括:date, ...

  6. JS——通过标签获取元素、循环语句、数组去重

    通过标签获取元素: var aLi = document.getElementsByTagName('Li'); aLi[0].style.backgroundColor = 'gold'; 选中部分 ...

  7. HDU 4622 Reincarnation Hash解法详解

    今天想学字符串hash是怎么弄的.就看到了这题模板题 http://acm.hdu.edu.cn/showproblem.php?pid=4622 刚开始当然不懂啦,然后就上网搜解法.很多都是什么后缀 ...

  8. Java实例学习——企业进销存管理系统(4)

    Java实例学习——企业进销存管理系统(4) (本实例为书上实例,我所记录的是我的学习过程) 开始时间:2月12日 完成时间:暂未完成 2月18日——系统主窗体设计 只看了学习视频 2月19日—— 回 ...

  9. a href="javascript:"与a href="#"

    <a href="javascript:;"></a> <a href="#"></a> 这两种写法.这两种写法 ...

  10. font:inherit

    font:inherit 字体的设置 设置所有元素的字体保持一致: 所有元素:*{font:inherit;} /* IE8+ */ body体用percent:body{font:100%/1 sa ...