我正在尝试通过从 API 获取来显示我请求的数据。一切正常,除了获取。
这是我的名为 Items.svelte
的组件:
<script>
let items = [];
async function load({ fetch }) {
const url = "../r/api/items/all";
let res = await fetch(url);
if (res.ok) {
return {
props: {
items: await res.json(),
},
};
}
return {
status: res.status,
error: new Error(),
};
}
</script>
{#each items as item}
<header>
<h2>{item.title}</h2>
<p>{item.body}</p>
</header>
{/each}
这是App.svelte
:
<script>
import Items from '$lib/Items.svelte';
</script>
<Items />
我做错了什么?
最佳答案
根据文档---> https://kit.svelte.dev/docs/loading
您缺少 context="module" 脚本部分。应该是:
<script context="module">
export async function load({ fetch }) {
let res = await fetch('../r/api/items/all');
if (res.ok) {
return {
props: {
items: await res.json()
}
};
}
return {
status: res.status,
error: new Error()
};
}
</script>
<script>
export let items = []
</script>
{#each items as item}
<header>
<h2>{item?.title}</h2>
<p>{item?.body}</p>
</header>
{/each}
关于javascript - 无法从 SvelteKit 中的 API 获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69075449/