[英]passing data from antdesign table row to modal
我有一个表,其中每一行都有一个按钮,可以发送DELETE
请求以从数据库中删除该行的数据:
{
title: '',
render: (record) => {
return (
<Button icon={<DeleteOutlined />} style={{color:'#1890ff', border:'solid 0px'}} onClick={() => showModal(record)}
>
</Button>
)
}
},
在这里,我试图在单击按钮到模态时传递record
数据。 为此,我创建了一个useState
钩子来存储我的表行数据,然后我想将数据传递给一个模态:
const [modalTaskId, setModalTaskId] = useState();
const [visible, setVisible] = useState(false);
const showModal = (record) => {
setModalTaskId(record);
setVisible(true);
};
这是我的模态:
<Modal
visible={visible}
onOk={() =>{handleOk()}}
confirmLoading={confirmLoading}
onCancel={handleCancel}
>
<p>{modalText}</p>
</Modal>
假设我想在模态上单击确定时记录modalTaskId
:
const handleOk = async () => {
console.log('modalTaskId: ', modalTaskId)
}
但它对我来说是空的! 那么如何将数据从我的表格行传递到我的模态,然后在单击模态的 ok 按钮时使用该数据?
首先,为您的modalTaskId
设置初始值。
const [modalTaskId, setModalTaskId] = useState();
然后,删除onOk
,您可以通过useEffect
控制您的可见性:
useEffect(() => {
if (visible) console.log(modalTaskId);
}, [visible])
本质上,根据columns
对象的范围,您可以将它们作为返回值包装在捕获showModal
处理程序上下文的函数中。
const getColumns(showModal) {
return [{
title: "Buttons",
dataIndex: 'arbitrary',
render: (text, record) =>
<Button onClick={showModal}}>Open Modal</Button>
}, ...]
}
...
// Usage
<Table dataSource={dataSource} columns={getColumns(showModal)} />
请注意,这可能不是性能最高的解决方案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.