Состояние моего компонента не обновляется при использовании функции обратного вызова из дочернего

Родительский компонент

function SourcePlate() {
  const [isOpen, setIsOpen] = React.useState(false);


  const handlePlateClick = () => {
    setIsOpen(true);    
  }

  const handleDialogClose = () => {
    setIsOpen(false);
    console.log(isOpen);
  }

    return (
        <div onClick={handlePlateClick}>
          <AutoCompleteDialog isOpen={isOpen} handleClose={handleDialogClose} title='Upload Plate'></AutoCompleteDialog>
        </div>        
    )
}

Дочерний компонент

export const AutoCompleteDialog = ({
        isOpen,
        handleClose
    }) => {
    return (
        <>
            <Dialog
                fullWidth
                maxWidth='md'
                open={isOpen}
                onClose={handleClose}                
            >
                <DialogActions>
                    <Button onClick={handleClose}>Close</Button>
                </DialogActions>

            </Dialog>
        </>
    )
}

Состояние моего компонента не обновляется при использовании функции обратного вызова от дочернего элемента.

Когда я нажимаю кнопку закрытия, мой диалог не закрывается, и мое состояние isOpen не обновляется до значения false. Что я могу исправить/изменить?


person user3622478    schedule 12.05.2020    source источник
comment
См. stackoverflow.com/questions/38619981/   -  person Gabriele Petrioli    schedule 13.05.2020
comment
Спасибо @GabrielePetrioli. Добавление e.stopPropagation исправило это.   -  person user3622478    schedule 13.05.2020