初始化前无法访问“variable_name" [英] Cannot access 'variable_name' before initialization
问题描述
当通过使用 $:
语法声明它们来使用反应性变量时,您会收到以下错误.
When using reactive variables by declaring them using the $:
syntax, you get the following error.
初始化前无法访问'variable_name'
代码如下:
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"]
推荐答案
当您使用 $:
分配变量时,您不能将它们分配为使用 let
声明的其他变量的一部分、const
或 var
.
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
}
})
以下内容:
$: namesWithA = bandmembers.filter(d => {
if (d.indexOf('a') > 0) {
return true;
}
else {
return false
}
})
我花了一段时间才弄明白这一点,只是想与任何其他开始使用这项新技术的 Svelte 新手分享.
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.
这篇关于初始化前无法访问“variable_name"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!