答案在底部
获取提交“选项表格”类型表单。现已在组件外部获取选中数据(函数1,通过 rowSelection={rowSelection} 绑定),如何在组件内部的函数(函数2)获取函数1的值?貌似简单,没获取到。
const rowSelection = { //我是函数 1
onChange: (selectedRowKeys, selectedRows) => {
console.log(
`selectedRowKeys: ${selectedRowKeys}`,
"selectedRows: ",
selectedRows //成功拿到数据
);
}
};
class TableForm extends Component<TableFormProps, TableFormState> {
okHandle = () => {
alert("我是函数2");
};
render() {
return (
<Modal onOk={this.okHandle}>
**<Table rowSelection={rowSelection}>**
</Modal>
);
}
}
其实就是一个表单提交,提交按钮是函数2。
... ...
state = {
selectedRowKeys: [],
selectedRows: [],
};
onSelectChange = (selectedRowKeys,selectedRows) => {
this.setState({ selectedRowKeys,selectedRows });
};
render() {
const { selectedRowKeys } = this.state;
const rowSelection = {
selectedRowKeys,
onChange: this.onSelectChange,
};
return (
... ...
从这凌乱的排版里大致猜出你是要把函数一里获取到的状态给函数二使用,从嵌套关系来讲 Table 与 Modal 是 TableForm 的子组件,组件之间传递状态的方式参考 react 组件通信。
最直接的方法是让 TableForm 传递一个方法,让 Table 修改 TableForm 的 state,handleOk 从 state 里读取。