使用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> /*自定義內容*/ }]
下班,下班。對象