Cannot access 'variable_name' before initialization
When using reactive variables by declaring them using the $: syntax, you get the following error.
Cannot access 'variable_name' before initialization
Here is the code:
App.svelte
<script>
import { ledzep, redhotchilis } from './data.js'
$: bandmembers = [...ledzep, ...redhotchilis]
let namesWithA = bandmembers.filter(d => {
if (d.indexOf('a') > 0) {
return true;
}
else {
return false
}
})
</script>
<h2>Band Members</h2>
<ul>
{#each bandmembers as member}
<li>{member}</li>
{/each}
</ul>
<h2>Members with "A" in their names</h2>
<ul>
{#each namesWithA as member}
<li>{member}</li>
{/each}
</ul>
data.js
export const ledzep = ["Jimmy Page", "John Bonham", "Robert Plant", "John Paul Jones"]
export const redhotchilis = ["Anthony Kiedis", "Flea", "Chad Smith", "Josh Klinghoffer"]When you assign variables using $: you cannot assign them as part of other variables declared using let, const, or var. When you do assignments using $:, you can only use them in other variables assigned using $:. In the code posted above, you need to change the following lines: let namesWithA = bandmembers.filter(d => { if (d.indexOf('a') > 0) { return true; } else { return false } }) to the following: $: namesWithA = bandmembers.filter(d => { if (d.indexOf('a') > 0) { return true; } else { return false } }) It took me a while to figure this out and just wanted to share this with any other Svelte newbies that are starting out in this new technology.
Get this solution programmatically \u2014 free, no authentication.
curl https://depscope.dev/api/error/0da581f05ff61691f301f30304b6e5d27988c099df8760c5e24e5014c30a136e