fix: destructuring state in ssr (#16102)

pull/16107/head
Paolo Ricciuti 3 months ago committed by GitHub
parent d5c6991b3b
commit 669a32a615
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -0,0 +1,5 @@
---
'svelte': patch
---
fix: destructuring state in ssr

@ -197,9 +197,13 @@ function create_state_declarators(declarator, scope, value) {
}
const tmp = b.id(scope.generate('tmp'));
const { paths } = extract_paths(declarator.id, tmp);
const { paths, inserts } = extract_paths(declarator.id, tmp);
return [
b.declarator(tmp, value), // TODO inject declarator for opts, so we can use it below
...inserts.map(({ id, value }) => {
id.name = scope.generate('$$array');
return b.declarator(id, value);
}),
...paths.map((path) => {
const value = path.expression;
return b.declarator(path.node, value);

@ -0,0 +1,11 @@
<script lang="ts">
let count = 0;
function* test(){
while (true) {
yield count++;
}
}
let [one, two] = $state(test())
</script>
{one}, {two}

@ -0,0 +1,5 @@
<script lang="ts">
let [level, custom] = $state([10, "Admin"])
</script>
{level}, {custom}
Loading…
Cancel
Save