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() || '' });