表格可以批量选择,rowkey,selectedRowKeys

1、 selectedRowKeys: [], // 用户选中哪个,对应的key都会存在这个数组里;

state = {

    selectedRowKeys: [],

    selectedRows: [],

  }

2、如果表格不设置 rowKey=" "的值,selectedRowKeys默认是每行的index,

      设置rowKey=“key”,那么selectedRowKeys默认是key对应的值;

const rowSelection = {

      selectedRowKeys: this.state.selectedRowKeys,

      onChange: (selectedRowKeys, selectedRows) => {

        //点哪个,就会在数组里 增加 表格该行 对应的 key

        that.setState({

          selectedRowKeys,

        });

     },

};

// 批量添加指标管理人 确定

    const onOk = () => {

//把key通过此方法传给父组件key
      this.props.sureHandle(this.state.selectedRowKeys);//把选中的所有key传给确定保存按钮

    };

    // 弹框

    const taskStaOpts = {

      ...opts,

      footer: typeName === 'kpiAdmin' ? [

        <Button onClick={onOk} type="primary">确定</Button>,

      ] : null,

      maskClosable: false,

    };

3、如果在选中的时候不仅要传code还要把username也一起传过去,可以自己重新定义data        数组------ 重新定义data数组,定义新的key

const dataSource = data && data.length > 0 && data.map((ele) => {

      return { 

                key: `${ele.code}-${ele.username}`, //key:016224-张三

                 ...ele ,是原来data所有的内容

        };

  }) || [];

 return, table, roekey设置

return (

      <Modal

        {...taskStaOpts}

        wrapClassName="vertical-center-modal"

      >

      <Table

          columns={columns}

          rowSelection={rowSelection}

          rowKey="key"  //即通过key把code和username都传给了方法

          dataSource={dataSource}

 />

上述都是子组件;

 父组件把接收到的key即下面代码的data,使用自定义的key:code-username

const kpiAdminList = data && data.length > 0 && data.map((ele) => {

            return ele.split('-')[0];  //截取-前的是code

          });

          const kpiUserName = data && data.length > 0 && data.map((ele) => {

            return ele.split('-')[1]; //截取-后面的是username

          });

          this.props.form.setFieldsValue({ kpiAdmin: kpiAdminList.toString() || '', kpiUserName: kpiUserName.toString() || '' });

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值