Svelte 3 - Как зациклить каждый блок X раз

Я надеюсь найти способ перебрать блок #each заданное количество раз в Svelte 3. В Vue я бы сделал что-то вроде этого:

<li v-for="i in 3"><!-- somecontent --></li>

Но насколько я понимаю, Svelte обрабатывает циклы по-разному, используя свойство .length массива #eached. Есть ли способ сделать что-то подобное в Svelte?

{#each 3 as i}
  <li><!-- somecontent --></li>
{/if}

person JHeth    schedule 03.10.2019    source источник


Ответы (2)


Вы можете использовать {#each ...}, например:

{#each Array(3) as _, i}
    <li>{i + 1}</li>
{/each}
person CD..    schedule 03.10.2019
comment
Есть ли способ повторно отобразить этот блок #each в любое время при изменении числовой переменной (например, с 3 на 5?). Я хотел бы отобразить определенное количество элементов формы на основе предыдущего ввода пользователя. Пример: Сколько у вас машин? - ›Количество текстовых полей, созданных, например, для каждой марки / модели автомобиля. - person Doomd; 17.01.2020
comment
@Doomd: да, см. Пример: svelte.dev/repl/fef2c8c8c700664006 .2 - person CD..; 20.02.2020
comment
Если вы собираетесь это сделать - введите @doomd, чтобы Svelte мог отслеживать добавления / удаления: {#each x as _, i (x.id)} или аналогичные. - person Antony Jones; 07.07.2021

Тег #each может зацикливать что угодно со свойством length, поэтому:

{#each {length: 3} as _, i}
    <li>{i + 1}</li>
{/each}

тоже будет работать, если хотите.

person Antony Jones    schedule 09.04.2020