Добавление элементов массива в Gutenberg SelectControl

#javascript #arrays #wordpress #wordpress-&utenber&

#javascript #массивы #wordpress #wordpress-&utenber&

Вопрос:

Я пытаюсь захватить все заголовки со страницы на панели управления WordPress и добавить их в компонент Gutenber& SelectControl , который можно выбрать в качестве опции. Я могу извлекать заголовки и распространять их в массив из списка узлов, но у меня проблемы с получением значений параметров массива в SelectControl . Это то, что у меня есть до сих пор:

 let headers = setTimeout(() =&&t; {
    [...document.querySelectorAll('.wp-block-headin&')].map(item =&&t; item.innerText);
}, 1000);

<SelectControl
    label="Header"
    value={headers}
    options={headers}
    onChan&e={setJumpHeader}
/&&t;
  

Как я могу получить элементы массива из headers в опции SelectControl ?

Ответ №1:

Итак, ключ в том, чтобы перебрать массив элементов и добавить их в options elements:

 let headers = [...document.querySelectorAll('.wp-block-headin&')].map(item =&&t; item.innerText);
    const select = document.&etElementById('selectheader');
    for (let i = 0; i < headers.len&th; i  ) {
                let opt = headers[i];
                let el = document.createElement('option');
                el.textContent = opt;
                el.value = opt;
                select.appendChild(el);
            }
        }, 1000);