![](/img/trans.png)
[英]How to strongly type the response of SvelteKit endpoint in the component?
[英]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 路由中;
如何將postId
從sample.svelte
傳遞到sample.ts
?
要將參數傳遞到端點,您可以自由選擇如何指定它們。
你總是需要做的是一個獲取請求,帖子 ID 以某種方式包含在該請求中。
我建議將帖子 ID 作為路徑參數傳遞。 這需要將端點的文件名更改為src/routes/test/sample/[postId].ts
或類似的東西,然后像這樣直接獲取:
const result = await fetch(`./sample/${postId}`);
此獲取必須在該頁面的加載功能期間完成。
但是對於像這樣的簡單情況,您也可以讓頁面和端點具有相同的名稱(如src/routes/test/sample/[postId].svelte
和src/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.