将数据从 +layout.server.js 传递到 +layout.svelte 和 +page.svelte

问题描述 投票:0回答:1

我使用

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}

我错过了什么?

谢谢,

svelte sveltekit svelte-5
1个回答
0
投票

+layout.svelte 是否与 +layout.server.js 和 +page.svelte 安全地位于同一文件夹中?这将是我首先想到的事情,因为我曾经遇到过这样的情况,因为代码编辑器中的文件管理器有非常小的缩进,所以我没有看到这一点。如果是,您是否尝试过构建应用程序(npm run build)并在生产版本中运行它(npm run Preview)?否则,我也会尝试删除 .svelte-kit 文件夹并删除并重新安装 node_modules。

© www.soinside.com 2019 - 2024. All rights reserved.