Я пытаюсь инициализировать вход <select/>
данными, полученными из функции на основе Promise. После того, как ввод инициализирует параметры (каждая опция получает значение и метку из разрешенных данных), атрибут привязывается к <select/>
.
Но каждый раз, когда я меняю параметр (с привязкой атрибута), все внутри блока {#await}
перезагружается (похоже, что он разрешает одно и то же обещание и сбрасывает параметры).
Этого не происходит, когда я снимаю привязку.
Я пробовал следующее:
Пробовал привязать атрибут к выбранному.
`<select bind:value={selected_device}>...`
Пытался привязать событие, которое получает выбранный вариант из списка.
`<select on:change={set_selected_device}>...`
Пытался сделать еще одну кнопку, чтобы получить выбранный вариант.
<select>...</select> <button on:click={set_selected_device}>Set</button>`
Это фрагмент текущего состояния:
Блок ожидания:
<div class="device-select container">
{#await VoiceStreamingService.get_microhpones()}
{:then devices}
<select id="device-options">
<option selected disabled>Select an Option...</option>
{#each devices as device (device.deviceId)}
<option value={device.deviceId}>{device.label}</option>
{/each}
</select>
{:catch}
{/await}
<button on:click={set_selected_device}>Connect To</button>
</div>
Функция set_selected_device:
function set_selected_device() {
let d = document.getElementById("device-options");
selected_device = d.options[d.selectedIndex].value;
console.log(selected_device);
}
Я упускаю что-то важное или это ошибка?