add dynamic dependencies for key changes

pull/5447/head
Tan Li Hau 5 years ago
parent 4c135b0b8d
commit ec3d90ff0c

@ -239,6 +239,11 @@ export default class EachBlockWrapper extends Wrapper {
this.node.expression.dynamic_dependencies().forEach((dependency: string) => {
all_dependencies.add(dependency);
});
if (this.node.key) {
this.node.key.dynamic_dependencies().forEach((dependency: string) => {
all_dependencies.add(dependency);
});
}
this.dependencies = all_dependencies;
if (this.node.key) {

@ -0,0 +1,27 @@
let count = 0;
let value = 'foo';
export default {
props: {
value() {
count ++;
return value;
}
},
html: `
<div>foo</div>
<div>foo</div>
`,
test({ assert, component, target }) {
value = 'bar';
component.id = 1;
assert.equal(count, 4);
assert.htmlEqual(target.innerHTML, `
<div>bar</div>
<div>bar</div>
`);
}
};

@ -0,0 +1,8 @@
<script>
export let id = 0;
export let value;
</script>
{#each ["foo", "bar"] as key (id + key)}
<div>{value()}</div>
{/each}
Loading…
Cancel
Save