Реагировать ANTD DatePicker HTMLCollection не отображает текущие значения при извлечении элементов / значений - PullRequest
3 голосов
/ 20 марта 2020

Когда я использую ANTD DatePicker и использую стрелки для go до следующей панели. Пользовательский интерфейс обновляется, но я не могу извлечь текущие значения из HTMLCollection или NodeList.

При первом открытии панели:

    var yrCell = document.getElementsByClassName("ant-calendar-year-panel-year");

    console.log(yrCell) // logs 2019-2030 in a HTMLCollection

    for (let item of yrCell) {
        console.log(item.innerText); // logs 2019-2030
    }

    for (let i = 0; i < yrCell.length; i++) {
        console.log(yrCell[i]); // logs 2019-2030
    }

    console.log(yrCell) // logs 2019-2030 in a HTMLCollection

Проблема возникает, когда я нажимаю стрелку «Далее» на панели enter image description here

    var yrCell = document.getElementsByClassName("ant-calendar-year-panel-year");

    console.log(yrCell) // logs 2029-2040 in a HTMLCollection

    for (let item of yrCell) {
        console.log(item.innerText); // STILL logs 2019-2030
    }

    for (let i = 0; i < yrCell.length; i++) {
        console.log(yrCell[i]); // STILL logs 2019-2030
    }

    console.log(yrCell) // logs 2029-2040 in a HTMLCollection

Если HTMLCollection обновился, а пользовательский интерфейс обновился и отобразил «более поздние» значения, и в моем коде я читаю новые значения до и после того, как я попытаюсь извлечь из него определенное c значение, как эти значения не сохраняются?

Любая помощь действительно приветствуется!

1 Ответ

0 голосов
/ 31 марта 2020

Так что, возможно, возникла некоторая проблема, возможно, с реальным виртуальным DOM, и я нашел результат, когда кто-то использовал Timeout, чтобы исправить другую проблему. Но я попробовал это в своем коде, и это разрешило его, поэтому я обернул свою логику c в эту.

setTimeout(() => {
    [...yearCells].forEach(yearCell => {
        for (var count = 0; count < this.state.yearsThatCoveragesWereChanged.length; count++) {
            if (this.state.yearsThatCoveragesWereChanged[count].effectiveFrom === yearCell.innerText) {
                 //logic
            }
        }
    });
}, 0);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...