Как связать значение выбора входа, с помощью динамически создаваемых вариантов в стройный

голоса
0

У меня есть стройный компонент с выбора входного сигнала, который заполняется данными из внешнего источника.

Как связать выберите вход, так что выбран конкретный вариант.

Если я значение опции или выбранное значение статично, она, кажется, работает нормально, но не, если оба являются динамическими.

Вот мой код

<script>
    export let params = {}

    let seasons = [];
    let selected = '';

    onMount(async () => {
        selected = params.seasonId; 
    /* fetch is called here and returns a list of seasons, which is passed to seasons array */
    })
</script>

<p><select bind:value={selected}>
    <option value= disabled>-- Select Season --</option>
    {#each seasons as season}
    <option value={season.id}>{season.description}</option>
    {/each}
</select></p>
<p>param: {params.seasonId}</p>
<p>Selected: {selected}</p>

Из кода, это выход HTML.

<p><select>
    <option value= disabled>-- Select Season --</option>
    <option value=4>2019</option>
    <option value=3>2018</option>
    <option value=2>2017</option>
    <option value=1>2016</option>
</select></p>
<p>param: 3</p>
<p>Selected: 3</p>

Я ожидаю, что после загрузки страницы, вариант 3 «2018» будет выбран, но это не меняет и «- Выберите сезон -» это выбранный вариант.

Задан 09/10/2019 в 12:56
источник пользователем
На других языках...                            


2 ответов

голоса
0

В этом упрощенном примере кода это похоже на работу: https://svelte.dev/repl/d95c63158f944ce996aaef092e4bff73?version=3.12.1

Я должен отметить, что если вы меняете начальное выбранное значение

let selected = 3;

Он не делает больше не работать, поэтому вопросы в стоимости params.seasonId

Ответил 10/10/2019 в 14:48
источник пользователем

голоса
0

Это должно работать нормально.

Не видя больше кода, мое предположение было бы , что params.seasonIdи season.idбывают разного типа (одна строка , а другой номер)

Ответил 09/10/2019 в 13:25
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more