Skip to content

Commit

Permalink
[fix] run else-if reactive function on re-renders (#6727)
Browse files Browse the repository at this point in the history
  • Loading branch information
bluwy authored Sep 15, 2021
1 parent 8820435 commit 79df74b
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 1 deletion.
2 changes: 1 addition & 1 deletion src/compiler/compile/render_dom/wrappers/IfBlock.ts
Original file line number Diff line number Diff line change
Expand Up @@ -391,7 +391,7 @@ export default class IfBlockWrapper extends Wrapper {
? b`
${snippet && (
dependencies.length > 0
? b`if (${block.renderer.dirty(dependencies)}) ${condition} = !!${snippet}`
? b`if (${condition} == null || ${block.renderer.dirty(dependencies)}) ${condition} = !!${snippet}`
: b`if (${condition} == null) ${condition} = !!${snippet}`
)}
if (${condition}) return ${i};`
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
foo
12 changes: 12 additions & 0 deletions test/runtime/samples/if-block-outro-computed-function/_config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
export default {
props: {
foo: true
},

html: 'foo',

test({ assert, component, target }) {
component.foo = false;
assert.htmlEqual(target.innerHTML, 'bar');
}
};
13 changes: 13 additions & 0 deletions test/runtime/samples/if-block-outro-computed-function/main.svelte
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<script>
import Foo from './Foo.svelte'
export let foo = true
$: bar = () => true
</script>

{#if foo}
<Foo />
{:else if bar()}
bar
{:else}
else
{/if}

0 comments on commit 79df74b

Please sign in to comment.