我使用
layout.server.js
执行 url 检查并加载其他数据。该数据由+page.svelte
加载。现在我想在 +layout.svelte
中加载当前 url 进行页面转换,但是 let { data } = $props();
中加载的数据 (+layout.svelte
) 是空的,而在 +page.svelte
中正确加载。
//+layout.server.js
export async function load({ url }) {
//...some code
return { myData, url: url.pathname };
}
//+page.svelte
let { data } = $props(); // returns the correct data
//+layout.svelte
<script>
let { children, data } = $props(); // undefined
</script>
{#key data.url}
<main in:fade={{ duration: 300, delay: 300 }} out:fade={{ duration: 300 }}>
{@render children?.()}
</main>
{/key}
我错过了什么?
谢谢,
+layout.svelte 是否与 +layout.server.js 和 +page.svelte 安全地位于同一文件夹中?这将是我首先想到的事情,因为我曾经遇到过这样的情况,因为代码编辑器中的文件管理器有非常小的缩进,所以我没有看到这一点。如果是,您是否尝试过构建应用程序(npm run build)并在生产版本中运行它(npm run Preview)?否则,我也会尝试删除 .svelte-kit 文件夹并删除并重新安装 node_modules。