使用React.js + Redux + antd 制作CMS 后台内容管理系统,分享一点点积累,欢迎讨论。

在this.state中初始化数据:

this.state = {
pageNum:1, /*翻页查询*/
pageSize:10, /*分页查询*/
activePage: 1, /*默认显示一页*/
selectedRowKeys: [], // 这里配置默认勾选列
loading: false, /*antd*/
selectedRow:[]
}

在制作过程中,根据需要把antd的官方教程的分页查询方法,更改如下:

/*翻页事件*/
onShowSizeChange(current, pageSize){
this.props.searchGroupManage({page:current ,size: pageSize});
}

/*分页事件*/
onChange(current){
    this.props.searchGroupManage({page:currentsize:this.state.pageSize});
}

render() 方法中,解析数据:

 
        //定义antd table 数据
const data = [];
//获取接口中的数据
const rows = this.props.versionGroupState.userGroupManageList;
//判断,如果第一次渲染是没有数据的,则不进行操作,第二次渲染才有数据,再进行下面的操作
if(rows){
//分页
pagination = {
total: rows.total,/*这里是所有的数据*/
showSizeChanger: true,
//把下面这两个函数变为对象,这样它们的函数里就了this再bind this就没问题了
onShowSizeChange:this.onShowSizeChange.bind(this),
onChange:this.onChange.bind(this)
}
//重新组织数据,并push到data中
rowsList = rows.list;
console.log("54564564" + rowsList);
//antd 数据解析
for(let i = 0 ; i < rowsList.length; i++){
lockedStatu = rowsList[i].lockedStatus === 'false' ? '帐号巳锁定' : '帐号未锁定';
isAdminManage = rowsList[i].isAdmin === 'true' ? '管理员' : '普通帐户';
//锁定时间
lockedTime = rowsList[i].lockedOn === null ? '' : '';
//创建时间
let createdYear = this.formatDate(rowsList[i].createdOn);
console.log("5484216354654" + createdYear); //push数据
data.push({
key: i,
mobile: rowsList[i].mobile,
username: rowsList[i].username,
lockedStatus: lockedStatu,
lockedOn:lockedTime,
isAdmin:isAdminManage,
createdOn:createdYear,
createdBy:rowsList[i].createdBy
})
}
}
return(
<div id='user-table'><Table rowSelection={rowSelection} columns={columns} dataSource={data} pagination={pagination} /> /*渲染Table组件*/
</div>
);

如果表格中有自定义的数据,可以在columns中插入自定义对象:

代码如下:

/*加入的自定义对象*/
const columns = [{
title: '标题名称', /*自定义标题*/
dataIndex: '', /*自定义数据,默认为空。因为自定义数据一般用来指定某个功能,要用render来return*/
key: 'x', /*区别table的其它key,可以指定key值*/
render: (可以传参数) => <Button type="dashed" onClick={this.showModal.bind(this,row)}>角色转换</Button> /*自定义内容*/
}]

下班,下班。

最新文章

  1. iOS开发系列--地图与定位
  2. VB6.0中,DTPicker日期、时间控件不允许为空时,采用文本框与日期、时间控件相互替换赋值(解决方案)
  3. tomcat 虚拟节点
  4. 【JAVA常用类演示】
  5. Model1
  6. github 项目版本控制
  7. C# 数据操作工具类
  8. UVALive 4255 Guess
  9. Linux coredump学习笔记
  10. vector容器经常用法
  11. dubbo+zookeeper+spring+springMVC+mybatis的使用
  12. Beta第一天
  13. .NET开发中基础问题,CODE First AND DB First(大牛自动忽略,小白可以看一下)
  14. RESTful Levels &amp; HATEOAS
  15. 关于AVL树的思考
  16. 安卓操作系统版本(Version)与应用程序编程接口等级(Application Programming Interface Level)对照表
  17. 前端经典面试题:如何理解 HTML 语义化?
  18. DDR3调试记录
  19. 【BZOJ2037】[Sdoi2008]Sue的小球 区间DP+费用提前
  20. mysqldumpl备份

热门文章

  1. iOS之常用宏定义
  2. ThingkPHP对数据库进行改操作
  3. 【代码笔记】iOS-可以向左(右)滑动
  4. Java中 实现多线程成的三种方式(继承,实现,匿名内部类)
  5. UIweib的简单实用
  6. Android 框架学习之 第一天 okhttp &amp; Retrofit
  7. 使用 Fiddler 上传微信公众账号 自定义菜单
  8. SQL Server 2012 The report server cannot open a connection to the report server database
  9. 把你的Project发布到GitHub上
  10. .NET/ASP.NET MVC Controller 控制器(深入解析控制器运行原理)