初始化前无法访问“ variable_name”

时间:2019-05-27 00:48:20

标签: svelte

在使用7z.exe x -y -p"s^&)kratsaslkd932(lkasdf930¤23" file.zip语法声明反应变量时,会出现以下错误。

$:

代码如下:

App.svelte

Cannot access 'variable_name' before initialization

data.js

<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>

1 个答案:

答案 0 :(得分:0)

使用export const ledzep = ["Jimmy Page", "John Bonham", "Robert Plant", "John Paul Jones"] export const redhotchilis = ["Anthony Kiedis", "Flea", "Chad Smith", "Josh Klinghoffer"] 分配变量时,不能将as分配为使用$:letconst声明的其他变量的一部分。

在上面发布的代码中,您需要更改以下行。

var

至以下。

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 新手分享。