javascript - antd table 如何把可編輯行的數(shù)據(jù)保存到服務(wù)器?
問(wèn)題描述
利用antd table 做了個(gè)表格,每行是可編輯的,因?yàn)槲沂前凑展俜降膶?xiě)法來(lái)組織代碼,所以具體代碼請(qǐng)移步看官方的文檔,戳這里--->> https://ant.design/components...
如果要把編輯后的數(shù)據(jù)保存到服務(wù)器,首先要獲得編輯成功之后的數(shù)據(jù),一開(kāi)始是在editDone()獲取,后來(lái)證明在該方法里是無(wú)法獲取到編輯成功之后的數(shù)據(jù);
轉(zhuǎn)向單元格的handleChange(),在這里面確實(shí)可以獲得編輯成功之后的數(shù)據(jù),可是該方法是被循環(huán)調(diào)用的,很多操作都被搞懵了。
請(qǐng)大家是怎么把編輯后的數(shù)據(jù)上傳到服務(wù)器的?
問(wèn)題解答
回答1:我試了下antd的例子,可以拿到編輯后的值,在EditableCell中,
handleChange(e) { const value = e.target.value; this.setState({ value }); }
有一個(gè)handleChange方法會(huì)監(jiān)聽(tīng)input值的變化,并實(shí)時(shí)改變state的值,所以在editDone中,
const { data } = this.state;//這個(gè)data就是你修改之后的值
有處理過(guò)一個(gè)可編輯的table,需求是一個(gè)編輯按鈕,一個(gè)提交按鈕,所以用<Form>包裹<Table>
<Form layout='inline' onSubmit={this.handleSubmit}> //用handleSubmit統(tǒng)一拿值
handleSubmit = (e) => {//因?yàn)槲覀冞@個(gè)可編輯的內(nèi)容都需要校驗(yàn),就用到antd中的validateFields,這個(gè)方法取值也方便 this.props.form.validateFields((err, values) => { console.log(values);//table中所有注冊(cè)到getFieldDecorator中的項(xiàng)的值都取到了,在這里你也可以改造values } }
相關(guān)文章:
1. MySQL的聯(lián)合查詢[union]有什么實(shí)際的用處2. 數(shù)組排序,并把排序后的值存入到新數(shù)組中3. mysql 遠(yuǎn)程連接出錯(cuò)10060,我已經(jīng)設(shè)置了任意主機(jī)了。。。4. win10 python3.5 matplotlib使用報(bào)錯(cuò)5. 默認(rèn)輸出類型為json,如何輸出html6. python - pymysql建立連接出錯(cuò)7. mysql怎么表示兩個(gè)字段的差8. python的正則怎么同時(shí)匹配兩個(gè)不同結(jié)果?9. PHP訂單派單系統(tǒng)10. php多任務(wù)倒計(jì)時(shí)求助
