Слот проп - PullRequest
       4

Слот проп

3 голосов
/ 05 января 2020

Я работаю над проектом Sapper, и я хотел бы загрузить некоторые асинхронные c данные в макет перед загрузкой в ​​слоты. Я обнаружил, что в файле _layout.svelte я не могу передать реквизит в слот.

//_layout.svelte
<slot foo={"hello"}></slot>

//index.svelte
<script>
  export let foo;
  alert(foo); // returns undefined
</script>

Кто-нибудь сталкивался с этим? Я думаю, что мог бы обойти это, просто загрузив все данные, которые мне нужны на каждом слоте / подстранице Единственный способ установить слот-реквизит - это получить к нему доступ вручную.

$$props.$$scope.ctx.level1.props.foo = "hello"

1 Ответ

2 голосов
/ 06 января 2020

Передача данных вроде этого не работает. Вы можете использовать контекст , хотя:

// in _layout.svelte
import {setContext} from 'svelte';
setContext('foo', foo);
// in index.svelte
import {getContext} from 'svelte';
const foo = getContext('foo');
...