Svelte: ссылки undefined

Я использую Svelte (v2.7) и Сапер (v0.12). Согласно документы, this.refs должен быть доступен, но для меня это undefined, как в oncreate, так и в пользовательских методах.

Мой index.html выглядит так:

<select id="wifi-ssid" ref="wifi-ssid">
...

<script>
    export default {
        oncreate() {
            console.log('this.refs is undefined here', this.refs);
        },
        methods: {
            getIsValid() {
                console.log('this.refs is undefined here too', this.refs);
                // ...
            },
            // ...
        }
    };
</script>

(Полный код здесь).

Я предполагаю, что это не ошибка (иначе все столкнулись бы с ней?), И у меня что-то не так, так как я использую ее впервые.


2
937
2

Ответы:

Решено

Синтаксис директивы ref - ref:name, а не ref="name". Это должен быть действующий идентификатор JavaScript, например <select ref:wifissid>, а не wifi-ssid.

Объект refs не создается, если не объявлены ссылки.


Это устарело, я считаю, что новый синтаксис - <select bind:this={wifissid}>.