在一个react-admin项目中,我创建了自己的工具栏按钮,应该显示一个确认对话框,类似于JavaScript警报,但不是那么丑陋。只有用户点击“确定”时,才会发生一些事情,在我的情况下,是一些数据库操作。在react-admin中是否有ootb警报对话框,或者有什么简单的方法可以创建一个?我在文档中没有找到关于这个主题的任何内容。我尝试了来自material ui(参见https://v1.material-ui.com/demos/dialogs/)的警报示例,但由于我对react的理解非常有限,所以无法从示例中创建可重用组件。更新:下面的代码片段说明了我想要做的事情:
// Definition of a toolbar button
const ActionButton = ({ handleSubmitWithRedirect, ...props }) => {
const form = useForm();
var formdata = form.getState().values;
switch (formdata.status.id) {
case 0:
props.label = "Text for state 0";
break;
case 1:
props.label = "Text for state 2";
break;
default:
props.label = "Unknown state"
}
const handleClick = useCallback(() => {
switch (formdata.status.id) {
case 0:
form.change('status', status[1]);
break;
case 1:
// Here I want to open a confirmation Dialog...
if( openAlertDialog("Warning, things will happen","Okay","Better not"))
{
form.change('status', status[2]);
createDatabaseRecord(formdata).then(() => (
// success handling [...]
),
() => (
// error handling [...]
))
};
break;
default:
}
handleSubmitWithRedirect('list');
}, [formdata, form]);
return <SaveButton {...props} handleSubmitWithRedirect={handleClick} />;
};