ant design <Table> td 插入select,如何实现有序存储?

答案在下面:

data[index][name]=value

点击一个更新一次
index 下标
name对应的字段
value就是值

感觉这个靠谱些,具体如何实现呢

<Select className='table-user-name-input'
onChange={this.onChange}
labelInValue>
{
   this.state.entityNameOptions_kLevelExpand_1.map(item => (
<Option key={item.value} title={item.text}>{ item.text }</Option>)
 }
 </Select>

B.png

源码地址:
百度网盘

页面地址:srcpagesBusinessModelcomponentsConnectForm.tsx

  save = e => {
    const { record, handleSave } = this.props;
    this.form.validateFields((error, values) => {
      if (error && error[e.currentTarget.id]) {
        return;
      }
      handleSave({ ...record, ...values });
    });
  };
  
  handleSave = row => {
    const newData = [...this.state.dataSource];
    const index = newData.findIndex(item => row.key === item.key);
    const item = newData[index];
    newData.splice(index, 1, {
      ...item,
      ...row
    });
    this.setState({ dataSource: newData });
  };
阅读 3.3k
1 个回答

如果我来实现,我会加一层闭包:

class A extends React.... {
    onChange = (row, cloumn) => (value) => {
        save(row, cloumn, value);
    }
    
    render() {
        return (
            ...
            <Select className='table-user-name-input'
            onChange={this.onChange(row, cloumn)}
            labelInValue>
            {
               this.state.entityNameOptions_kLevelExpand_1.map(item => (
            <Option key={item.value} title={item.text}>{ item.text }   </Option>)
             }
             </Select>
            ...
        );
    }
   
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题