#react-admin #confirm
Вопрос:
Я пытаюсь открыть диалоговое окно подтверждения при нажатии кнопки с помощью React Admin. Имя нажатия кнопки — «handleSendItemsToUpdate».
Однако диалоговое окно не открывается.
Пожалуйста, найдите код ниже:
const notify = useNotify();
const [open, setOpen] = React.useState(false);
const handleDialogClose = () => setOpen(false);
const handleSendItemsToUpdate = (props) => {
const handleConfirm = () => {
notify('Stuff is done.');
setOpen(false);
};
setOpen(true);
return (
<Fragment>
<SaveButton {...props} />
<Confirm
isOpen={open}
title="Update View Count"
content="Are you sure you want to reset the views for these items?"
onConfirm={handleConfirm}
onClose={handleDialogClose}
/>
</Fragment>
);
}
...
<Button className={classes.button} onClick={() => handleSendItemsToUpdate(props)}>Send Items To
Update</Button>
Любая помощь будет признательна.
Заранее спасибо!
Бегум
Ответ №1:
Диалоговое окно подтверждения возвращается в handleSendItemsToUpdate
функции, которая не отображается в компоненте (используется в DOM), поэтому ее нельзя отобразить.
Вы можете поместить возвращаемое значение в функцию в значение возврата компонента, и, конечно, оно отображается только в том случае, если открытое состояние истинно.
Вы можете проверить мою демо-версию здесь: https://codesandbox.io/s/peaceful-dewdney-6pil2?file=/src/App.js
Комментарии:
1. Большое вам спасибо 🙂 Когда я помещаю подтверждение в возврат компонента, журнал diaolog открыт !!
2. Привет, Бегум, лучший способ разместить подтверждение (или любой тип модального) в React, поместив его в компонент <Приложение> и управляя его открытым состоянием и содержимым с помощью redux, чтобы вы могли открывать и обновлять содержимое в модальном в любом месте любого компонента. Надеюсь, это поможет 😀