簡體   English   中英

如何將數據從 sveltekit 路由傳遞到影子端點 .ts

[英]How to pass data from sveltekit route to shadow endpoint .ts

我在這樣的 sveltekit 應用程序中有我的文件結構:
src/routes/test/sample.svelte

<script>
    export let message;
    postId = 64;
</script>

<h1>{message}</h1>

src/routes/test/sample.ts

let postId;
export async function get() {
    return {
        body: {
            message: 'Selected post id is : ' + postId ,
            
        }
    };
}

使用此代碼,我們可以從 .ts 文件中獲取消息並將其顯示在 .svelte 路由中;
如何將postIdsample.svelte傳遞到sample.ts

要將參數傳遞到端點,您可以自由選擇如何指定它們。
你總是需要做的是一個獲取請求,帖子 ID 以某種方式包含在該請求中。

我建議將帖子 ID 作為路徑參數傳遞。 這需要將端點的文件名更改為src/routes/test/sample/[postId].ts或類似的東西,然后像這樣直接獲取:

const result = await fetch(`./sample/${postId}`);

此獲取必須在該頁面的加載功能期間完成。
但是對於像這樣的簡單情況,您也可以讓頁面和端點具有相同的名稱(如src/routes/test/sample/[postId].sveltesrc/routes/test/sample/[postId].ts ),頁面的 props 將填充來自端點的響應。
簡單得多,可能是您更好的選擇。

然后要在端點內獲取 postId,您可以使用傳遞給它的params對象。 當端點路徑中有諸如[postId]之類的表達式時, params.postId將在請求端點時使用路徑中該位置的字符串填充。
一個完整的端點可能看起來像這樣:

export async function get({params}) {
  const postId = params.postId
  return {
    body: {
      message: 'Selected post id is : ' + postId ,
    }
  };
}

此外,所有這些都列在 svelte kit 的文檔中,總體來說還不錯。 查看有關端點的頁面。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM