Size: a a a

2020 September 05

МТ

Марк Танащук... in Svelte [svelt]
Кирилл Спасибович
сделай экшен на последнем ?
{#each array as item, i}
 <Item use:someFunc={array.length == i - 1} {someOtherProp}/>
{/each}

function someFunc(node, isLast) {
 if(isLast) {
   someNodes = querySelectorAll('родительский тег каждого Item')
 // otherCode
 }
}

?
источник

КС

Кирилл Спасибович... in Svelte [svelt]
типа того
источник

КС

Кирилл Спасибович... in Svelte [svelt]
можно в if запихнуть условие, что это последний айтем
источник

КС

Кирилл Спасибович... in Svelte [svelt]
чтобы тонну раз экшен не запускать
источник

МТ

Марк Танащук... in Svelte [svelt]
Кирилл Спасибович
можно в if запихнуть условие, что это последний айтем
Это я уже выше и сделал собсно
источник

МТ

Марк Танащук... in Svelte [svelt]
Я собсно понимаю что так можно и это окей, но ищу еще более оптимальный вариант
источник

КС

Кирилл Спасибович... in Svelte [svelt]
Марк Танащук
Это я уже выше и сделал собсно
{#each array as item, i}
 {#if array.length === i - 1}
   <Item use:someFunc {someOtherProp}/>
 {:else}
   <Item {someOtherProp}/>
 {/if}
{/each}
источник

МТ

Марк Танащук... in Svelte [svelt]
Кирилл Спасибович
{#each array as item, i}
 {#if array.length === i - 1}
   <Item use:someFunc {someOtherProp}/>
 {:else}
   <Item {someOtherProp}/>
 {/if}
{/each}
Засорять разметку не охота совсем
источник

МТ

Марк Танащук... in Svelte [svelt]
Но как вариант тоже
источник

КС

Кирилл Спасибович... in Svelte [svelt]
если тебе для анимаций можешь в див обернуть и ноду дива биндить
qs полюбому будет медленнее
ну либо забинди пропс с нодой и пробрось его вверх в объект по id
источник

A

Arushwl in Svelte [svelt]
А вот это вот - arr.length === i - 1 - последний значит?
источник

МТ

Марк Танащук... in Svelte [svelt]
Кирилл Спасибович
если тебе для анимаций можешь в див обернуть и ноду дива биндить
qs полюбому будет медленнее
ну либо забинди пропс с нодой и пробрось его вверх в объект по id
Бинд можно будет на реактивность повесить?
источник

МТ

Марк Танащук... in Svelte [svelt]
Arushwl
А вот это вот - arr.length === i - 1 - последний значит?
Да
источник

КС

Кирилл Спасибович... in Svelte [svelt]
Марк Танащук
Бинд можно будет на реактивность повесить?
в смысле ?
ну каждый раз когда новый компонент создастся и html запилит у тебя объект затригерит реактивность
типа bind:node={nodes[i]}
источник

КС

Кирилл Спасибович... in Svelte [svelt]
а в компоненте

export let node;

main div bind:this={node}
источник

МТ

Марк Танащук... in Svelte [svelt]
Кирилл Спасибович
а в компоненте

export let node;

main div bind:this={node}
Все равно нужно чекать является ли нода последней, потому что тогда по идее несколько раз тригерится будет
источник

МТ

Марк Танащук... in Svelte [svelt]
Так что получается либо экшн либо онмаунт
источник

КС

Кирилл Спасибович... in Svelte [svelt]
экшен лучше
источник

КС

Кирилл Спасибович... in Svelte [svelt]
дак даже можно не экшен
источник

КС

Кирилл Спасибович... in Svelte [svelt]
можно просто в компонент передать что он последний
источник