0
0
mirror of https://github.com/sveltejs/svelte.git synced 2024-11-30 00:46:29 +01:00

detach each block iterations with no update method - fixes #1795

This commit is contained in:
Rich Harris 2018-10-24 09:38:19 -04:00
parent 1deb25e184
commit ece6aeb892
3 changed files with 31 additions and 1 deletions

View File

@ -462,7 +462,7 @@ export default class EachBlockWrapper extends Wrapper {
`;
} else {
destroy = deindent`
for (; #i < ${iterations}.length; #i += 1) {
for (${this.block.hasUpdateMethod ? `` : `#i = ${this.vars.each_block_value}.${length}`}; #i < ${iterations}.length; #i += 1) {
${iterations}[#i].d(1);
}
${iterations}.length = ${this.vars.each_block_value}.${length};

View File

@ -0,0 +1,27 @@
export default {
data: {
things: [0, 0, 0, 0, 0]
},
html: `
<p>0</p>
<p>1</p>
<p>2</p>
<p>3</p>
<p>4</p>
`,
test(assert, component, target) {
console.group('set');
component.set({
things: [0, 0, 0]
});
console.groupEnd();
assert.htmlEqual(target.innerHTML, `
<p>0</p>
<p>1</p>
<p>2</p>
`);
}
};

View File

@ -0,0 +1,3 @@
{#each things as _, i}
<p>{i}</p>
{/each}