[英]Table - Ant Design, onRow DoubleClick
I want open modal window, when i doubleClick onRow in Table antd.我想要打开模态 window,当我双击表 antd 中的 onRow 时。 And pass property to modal.并将属性传递给模态。 Like this:像这样:
<Table
columns={columns}
components={components}
dataSource={dataSource}
onRow={(record) => {
return {
onDoubleClick: () => {
return <ModalWindow props={record} />
// or
return <ModalWindow> {record.name} </ModalWindow>
}
}
}} />
The problem is that no jsx is returned.问题是没有返回 jsx。 I can save in state, like here:我可以保存在 state 中,如下所示:
const [visible, setVisible] = useState(false);
const [record, setRecord] = useState([]);
<Table
columns={columns}
components={components}
dataSource={dataSource}
onRow={(record) => {
return {
onDoubleClick: () => {
setRecord(record);
setVisible(true);
}
}
}} />
{visible &&
<ModalWindow record={record} />
}
but that's not my way.但这不是我的方式。 Help me, please.请帮帮我。
You can handle your requirement by using one Modal
and updating content of modal with double-click on every row, like this:您可以通过使用一个Modal
并通过双击每一行来更新模态的内容来处理您的要求,如下所示:
function App() {
// ...
const [isModalVisible, setIsModalVisible] = useState(false);
const [activeRecord, setActiveRecord] = useState(null);
const closeModal = () => {
setIsModalVisible(false);
};
return (
<>
<Table
columns={columns}
dataSource={data}
onRow={(record) => {
return {
onDoubleClick: () => {
setActiveRecord(record);
setIsModalVisible(true);
},
};
}}
/>
<Modal
title="User info"
visible={isModalVisible}
onCancel={closeModal}
footer={null}
>
{/* render whatever you want based on your record */}
<p>{activeRecord?.name} </p>
</Modal>
</>
);
}
I've implemented an example Here on stackBlitz , you can check it out.我已经在 stackBlitz 上实现了一个示例,您可以查看它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.