_layout.svelte中的插槽道具未通过道具

时间:2020-01-05 19:23:01

标签: svelte sapper

我正在处理一个Sapper项目,我想先将一些异步数据加载到布局中,然后再加载到插槽中。我发现在_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 个答案:

答案 0 :(得分:3)

像这样传递数据似乎不起作用。您可以使用context

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