Диалоговое окно подтверждения не открывается react-admin

#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, чтобы вы могли открывать и обновлять содержимое в модальном в любом месте любого компонента. Надеюсь, это поможет 😀