Document.body.removeChild () удаляет модальные только в режиме отладки - PullRequest
0 голосов
/ 15 февраля 2019

Я подключил слушатель 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;
}

Теперь происходит то, что модал не 'исчезнуть и войти нужно нажать снова.Кажется, что модальное состояние не исчезает до тех пор, пока:

  1. Во второй раз не будет нажата Enter
  2. Существует точка останова (независимо от того, где)
  3. Нажатие на модальное нажатие, а затем нажмите Enter

В чем может быть причина того, что модал просто не отсоединяется с первой попытки?

...