javascript - Sveltekit 加载函数显然没有被调用

标签 javascript routes svelte sveltekit svelte-component

我是 Svelte 和 Sveltekit 的新手,我正在开发一个非常基本的应用程序,其中包含一个页面,例如:

src/routes/categories/[slug]/+page.svelte

在另一个页面中,我有一个指向前面提到的页面的链接。当点击链接时,它成功地将我重定向到 [slug]/+page.svelte 并且我可以看到格式正确的 URL: http://localhost:5173/categories/test-6

现在,我尝试在加载页面时获取 URL 的 [slug] 部分。我正在浏览文档并阅读有关 load 函数的信息,因此我实现了:

<script context="module">

    /** @type {import('./$types').PageLoad} */
    export function load({params}) {
        console.log(params.slug);
        const slug = params.slug;
        return {
            slug
        };
    }
</script>

<script>
    let slug = undefined;
</script>


<h1>{slug}</h1>
wassap

但是当我访问该页面时,我只看到:

undefined
wassap

我什至没有看到我添加到 load 的日志语句。

我错过了什么?

NOTEL 我知道我也许可以使用 onMount$page 并以其他方式访问参数,但我想使用 >加载,对我来说看起来干净多了。

谢谢

最佳答案

您的加载函数不应再位于 context="module" block 中,而应位于名为 +page.js 的单独文件中:

export function load({params}) {
  console.log(params.slug);
  const slug = params.slug;
  return {
    slug
  };
}

其结果被放置在一个对象data中,因此在+page.svelte中您现在将拥有:

<script>
  export let data;
</script>

<h1>{data.slug}</h1>

关于javascript - Sveltekit 加载函数显然没有被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73632460/

相关文章:

ssl - 负载平衡 IP OVH 和 Play 静态文件

ruby-on-rails - 在路由中捕获所有内容时重定向并引发 flash 消息

ionic-framework - 在 Ios 上使用 Capacitor x Svelte 时按钮响应时间变慢

javascript - 使用聚合 $lookup 和 $mergeObjects

javascript - 使用 Express 和 Ember 启动 Web 应用程序

javascript - JavaScript 中的计算器

javascript - 本地主机不允许我链接到 WordPress 中的 javascript

AngularJS $http 请求在提供者函数中

svelte - 如何在 Svelte 组件中每次 prop 更改时发出获取请求?

javascript - 当新视频加载 Tauri 和 Svelte 时如何更新视频的当前时间?