使用 antd Table組件, 異步獲取數據

 

使用React.js + Redux + antd 製做CMS 後臺內容管理系統,分享一點點積累,歡迎討論。antd

在this.state中初始化數據:函數

this.state = { pageNum:1,  /*翻頁查詢*/ pageSize:10,  /*分頁查詢*/ activePage: 1,  /*默認顯示一頁*/ selectedRowKeys: [], // 這裏配置默認勾選列
            loading: false,  /*antd*/ selectedRow:[] }

在製做過程當中,根據須要把antd的官方教程的分頁查詢方法,更改以下:this

/*翻頁事件*/
onShowSizeChange(current, pageSize){
this.props.searchGroupManage({page:current ,size: pageSize}); }
/*分頁事件*/ onChange(current){
    this.props.searchGroupManage({page:currentsize:this.state.pageSize}); }

render() 方法中,解析數據:spa

 
 //定義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中插入自定義對象:code

代碼以下:orm

/*加入的自定義對象*/ const columns = [{ title: '標題名稱',  /*自定義標題*/ dataIndex: '',   /*自定義數據,默認爲空。由於自定義數據通常用來指定某個功能,要用render來return*/ key: 'x',   /*區別table的其它key,能夠指定key值*/ render: (能夠傳參數) => <Button type="dashed" onClick={this.showModal.bind(this,row)}>角色轉換</Button>   /*自定義內容*/ }]

下班,下班。對象

相關文章
相關標籤/搜索