Я подключил слушатель keydown в конструкторе моего класса, например
constructor(props: DropDownProps) {
this.wrapper = document.createElement("div");
document.body.appendChild(this.wrapper);
..
this.confirm = this.confirm.bind(this);
this.handleEnterKey = this.handleEnterKey.bind(this);
document.body.addEventListener("keydown", this.handleEnterKey);
}
Прикрепленная функция, handleEnterKey () проверяет введенный код ключа иесли это ключ возврата, он вызывает Подтверждение () .
handleEnterKey :
private handleEnterKey(e: any) {
if (e.keyCode === 13) {
this.confirm(e);
}
}
подтвердить :
private confirm(e: any) {
this.onConfirmIn();
document.body.removeEventListener("keydown", this.handleEnterKey);
document.body.removeChild(this.wrapper);
ConfirmationDialog.isConfirmationDialogOpened = false;
}
Теперь происходит то, что модал не 'исчезнуть и войти нужно нажать снова.Кажется, что модальное состояние не исчезает до тех пор, пока:
- Во второй раз не будет нажата Enter
- Существует точка останова (независимо от того, где)
- Нажатие на модальное нажатие, а затем нажмите Enter
В чем может быть причина того, что модал просто не отсоединяется с первой попытки?