【发布时间】:2021-11-22 12:55:47
【问题描述】:
我有一个如下的数据表实现。
<MaterialTable
icons={tableIcons}
title={title}
columns={columns}
data={data}
actions={[
{
icon: () => <Edit />,
tooltip: 'Edit',
onClick: (event, rowData) => {
}
},
{
icon: () => <Delete />,
tooltip: 'Delete',
onClick: (event, rowData) => {
return <DeletePrompt button_click="1" /> // <-- this is where I need to call the modal
}
}
]}
options={{
actionsColumnIndex: -1,
exportButton: true,
headerStyle: {
fontWeight: "bold"
}
}}
/>
但是,我需要使用以下模式来实现删除操作。
删除提示.jsx
export default function DeletePrompt(props) {
const content = props.content;
const data_id = props.data_id;
const [open, setOpen] = React.useState(false);
const handleClickOpen = () => {
setOpen(true);
};
const handleClose = () => {
setOpen(false);
};
if(props.button_click === 1){
handleClickOpen()
}
return (
<div>
<Dialog
open={open}
onClose={handleClose}
aria-labelledby="alert-dialog-title"
aria-describedby="alert-dialog-description"
>
<DialogTitle id="alert-dialog-title">
{"Are you sure to Delete?"}
</DialogTitle>
<DialogContent>
<DialogContentText id="alert-dialog-description">
{ content }
</DialogContentText>
</DialogContent>
<DialogActions>
<Button onClick={handleClose}>Cancel</Button>
<Button onClick={handleClose} autoFocus>
Delete
</Button>
</DialogActions>
</Dialog>
</div>
);
}
我知道在这种情况下调用handleClickOpen() 方法会起作用。但由于某种原因,它似乎不起作用。猜猜我在这里错过了什么。
【问题讨论】:
标签: javascript reactjs material-ui material-table