svelte - _layout.svelte 中的插槽 Prop 不通过 Prop

标签 svelte sapper

我正在处理一个 Sapper 项目,我想在加载到插槽之前将一些异步数据加载到布局中。我发现在 _layout.svelte 文件中,我无法将 Prop 传递给插槽。

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

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

有没有人遇到过这个?我想我可以通过在每个插槽/子页面上加载我需要的所有数据来解决它。我能够设置插槽 Prop 的唯一方法是手动访问它。
$$props.$$scope.ctx.level1.props.foo = "hello"

最佳答案

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

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

关于svelte - _layout.svelte 中的插槽 Prop 不通过 Prop ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59603406/

相关文章:

svelte - 在 sapper/svelt 中是否有组件的快捷方式

node.js - 错误 : Cannot find module 'polka' on Heroku

custom-element - 未捕获( promise )TypeError : Illegal constructor at new SvelteElement (index. mjs:1381)

svelte - 无法使用 Sapper 导出生成动态路由

svelte - 如何检索 Sveltekit page.js 文件上的 localStorage 数据?

typescript - 无法使用 TypeScript 将 prop 传递给 svelte 中的组件

Svelte 中非标准窗口事件的 TypeScript 类型化

svelte - 从组件和插槽中的组件传递 Prop

javascript - 从 SvelteKit load() 函数导出 Prop

svelte - 具有 typescript 和 scss 支持的 svelte/sapper 的 Webpack 配置