您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關實現(xiàn)在antd Table中插入可編輯的單元格的方法,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
具體代碼見貼圖
補充知識:React+Ant Design實現(xiàn)可編輯單元格、添加行并利用form獲取新增數(shù)據(jù)
實現(xiàn)如下圖所示需求:
實現(xiàn)功能說明:
點擊添加按鈕,在表格中添加新的空白行(如下圖所示),在點擊提交的時候獲取空白行的數(shù)據(jù)
在構造函數(shù)內(nèi)定義:
constructor(props) { super(props) this.state = { dataSource:[{ key: 0, name1: '', name2: '', name3: '', }],//應用信息化查詢方法 count:1,//總數(shù) } }
注:如果dataSource定義為空數(shù)組,則頁面初始化時表格沒有輸入框,需要點擊添加行,如下圖
在render()中定義:
const { form: { getFieldDecorator },dataSource } = this.props
在return中添加如下代碼:
<div> </Form> <Form.Item> <Table columns={[ { title: '名稱1', dataIndex: 'name1',render: (text, record, index) => <Form.Item key={index}> {getFieldDecorator(`tableDt[${index}].name1`)( <Input placeholder="請輸入名稱1" /> )} </Form.Item> }, { title: '名稱2', dataIndex: 'name2',render: (text, record, index) => <Form.Item key={index}> {getFieldDecorator(`tableDt[${index}].name2`)( <Input placeholder="請輸入名稱2" /> )} </Form.Item> }, { title: '名稱3', dataIndex: 'name3',render: (text, record, index) => <Form.Item key={index}> {getFieldDecorator(`tableDt[${index}].name3`)( <Input placeholder="請輸入名稱3" /> )} </Form.Item> }, ]} dataSource={this.state.dataSource} pagination={false} /> </Form.Item> </Form> <Row gutter={16}> <Col span={24}> <Button onClick={ this.save } type="primary">提交</Button> <Button onClick={ this.toback }>返回</Button> <span className="tips">{this.state.saveTipCont}</span> </Col> </Row> </div>
點擊添加行按鈕的操作方法:
//添加應用信息化查詢方法行 handleRowAdd = () => { const { count, dataSource } = this.state; const newData = { key: count, name1: '', name2: '', name3: '', }; this.setState({ dataSource: [...dataSource, newData], count: count + 1, }); }
點擊提交操作的方法:
//保存 save = () => { //處理校驗值 this.props.form.validateFields((err, values) => { // console.log(values) if(!err){ // values.tableDt就是個表格數(shù)據(jù)的數(shù)組,可對獲取的值進行處理校驗處理 } }) }
實現(xiàn)效果如下:
value.tableDt值如下:
看完上述內(nèi)容,你們對實現(xiàn)在antd Table中插入可編輯的單元格的方法有進一步的了解嗎?如果還想了解更多知識或者相關內(nèi)容,請關注億速云行業(yè)資訊頻道,感謝大家的支持。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。