之前已经实现了可编辑和可拖拽的table了:
【已解决】AntD Pro中支持剧本剧本编写时拖动排序单个对话
现在需要去加一列,点击后可以删除,且希望是这种图标的按钮:
而不是(官网demo中
)普通的可点击的delete文字
【总结】
最后用代码:
export default class ScriptCreate extends PureComponent { constructor(props) { super(props) ... this.handleDeleteItem = this.handleDeleteItem.bind(this) } handleDeleteItem(index) { console.log("handleDeleteItem: index=", index) let afterDeleteList = this.state.dialogList console.log("this.state.dialogList=", this.state.dialogList) if (index < afterDeleteList.length) { afterDeleteList.splice(index, 1) console.log("afterDeleteList=", afterDeleteList) console.log("this.state.dialogList=", this.state.dialogList) this.setState({ dialogList: afterDeleteList }) this.forceUpdate() } } columns = [ { title: '序号', width: "8%", editable: false, dataIndex: 'number', key: 'number', // rowKey: 'number', // fixed: 'left', render(text, record, index) { return index + 1; }, }, { width: "15%", editable: true, title: 'Speaker/Song', dataIndex: 'speakerOrSong', key: 'speakerOrSong', }, { width: "65%", editable: true, title: 'Content/Name', dataIndex: 'contentOrName', key: 'contentOrName', }, { width: "10%", editable: false, title: 'Action', dataIndex: '', key: 'action', render: (text, record, index) => { console.log(`Action: [${index}] `, ", text=", text, " record=", record) // return <a href="javascript:;">Delete</a> return ( <Popconfirm title="是否删除此对话?" onConfirm={() => this.handleDeleteItem(index)} > {/* <a>删除</a> */} <Button shape="circle" icon="close" /> </Popconfirm> ) } }, ] <DragableEditableTable tableMode={this.state.tableMode} columns={this.columns} itemList={this.state.dialogList} onTableDataChange={this.syncDialogList} onTableModeChange={this.onTableModeChange} form={this.props.form} />
实现了要的效果:
注:
其中是参考:
中的Column的render:
“render
生成复杂数据的渲染函数,参数分别为当前行的值,当前行数据,行索引,@return里面可以设置表格行/列合并
Function(text, record, index) {}”
去加上delete的handle的。
不过有点奇怪 是:
此处:
render: (text, record, index) => { console.log(`Action: [${index}] `, ", text=", text, " record=", record)
输出的是
即:text和record都是一样的,都是record的对象数据,而不是什么文本
也去试了试:
render: (text, record) => {
结果一样:还是输出了text和record一样的对象数据
对此,暂时不是完全清楚,有空再说。
转载请注明:在路上 » 【已解决】给Antd Pro的表格中添加一列删除图标按钮