使用 antd Table组件, 异步获取数据

使用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>   /*自定义内容*/
}]

下班,下班。

时间: 2024-11-08 19:21:00

使用 antd Table组件, 异步获取数据的相关文章

nuxt.js中asyncData 方法能够在渲染组件之前异步获取数据

https://zh.nuxtjs.org/api/ asyncData 方法 你可能想要在服务器端获取并渲染数据.Nuxt.js添加了asyncData方法使得你能够在渲染组件之前异步获取数据. asyncData方法会在组件(限于页面组件)每次加载之前被调用.它可以在服务端或路由更新之前被调用. 原文地址:https://www.cnblogs.com/marquess/p/12628749.html

MVC—实现ajax+mvc异步获取数据

之前写过ajax和一般处理程序的结合实现前后台的数据交换的博客,如今做系统用到了MVC,同一时候也用到了异步获取数据. ajax+一般处理程序与MVC+ajax原理是一样的在"URL"中前者写的一般处理程序的名字.而后者写到Controller中须要调用的方法. Controller中的设计 using System.Collections.Generic; using System.Web.Mvc; namespace mvcAjaxByAjax.Controllers { //考试

datatables异步获取数据、简单实用

IKC项目总结 一.认证难题管理模块 1. 如何使用datatables进行获取数据内容 datatables简介:Datatables是一款jquery表格插件.它是一个高度灵活的工具,可以将任何HTML表格添加高级的交互功能. 分页,即时搜索和排序 几乎支持任何数据源:DOM, javascript, Ajax 和 服务器处理 支持不同主题 DataTables, jQuery UI, Bootstrap, Foundation 各式各样的扩展: Editor, TableTools, Fi

Validform和aui2.0结合使用的表单自定义验证提示和列表页异步获取数据Demo

二.添加自定义验证演示       Validform验证提示大多都是在输入框或下拉框的右边或下面.感觉就是不美观,特别是表单字段少的时候,这种在相应对象旁边的提示就没必要了,      它会给人一种不友好的感觉(只是自己的感觉).所以下面写了三种添加演示,希望大家能给出建议,以免下次用起来纠结,不知道用哪种好.        表单验证插件是我们经常使用的Validform_v5.3.2_min.js.先上添加1演示的表单验证js代码,这里我设置了点击提交按钮后才验证.其他添加演示的区别不大,详

netty客户端异步获取数据

源码见,下面主要是做个重要代码记录 http://download.csdn.net/detail/json20080301/8180351 NETTY客户端获取数据采用的方式是异步获取数据,不像socket你不知道服务端何时处理请求,何时能得到响应,即使得到响应也没法自动退出程序: 必须使用以下步骤: =================step 0.当然是发起异步连接操作,等待客户端链路关闭 //发起异步连接操作 ChannelFuture f = b.connect(this.host, t

IOS异步获取数据并刷新界面dispatch_async的使用方法

在ios的开发和学习中多线程编程是必须会遇到并用到的.在java中以及Android开发中,大量的后台运行,异步消息队列,基本都是运用了多线程来实现. 同样在,在ios移动开发和Android基本是很类似的一种模型. 但是很多时候,在应用开发中,我们会发现本身并没有自己编码去处理一些并发的事件,去开辟新的子线程等等. (虽然一般的调用sdk发起一个网络请求,系统都是会默认给你新起一个线程去处理的). 整个程序看上去基本就是在Main线程中执行. 确实也是这样的一种现象,因为我们基本都是在操作控件

GDC异步获取数据例子

- (void)processImageDataWithBlock:(void (^)(NSData *imageData))processImage //声明函数processImageDataWithBlock 接收一个(void (^)(NSData *imageData))processImage 块参数, 该块参数接收一个NSData*参数.实质上这个块参数是异步回调函数 { NSString *url = self.imageURL; dispatch_queue_t callerQ

JavaScript异步获取数据解析

<script type="text/javascript">    var xhr=false;    function createXhr() {    var xhobj = false;    try {        xhobj = new ActiveXObject("Msxml2.XMLHTTP"); // ie msxml3.0+    } catch (e) {        try {            xhobj = new A

关于本地$.get(url,function(data)),异步获取数据

起初 此处url为本地同目录下的html片段 $.get(url,function(data) { alert(url); $("#gallery").append(data); }); 浏览器无法获取:解决方法:在谷歌快捷方式添加--disable-web-security,并重启浏览器后正常运行