【发布时间】:2021-10-09 14:08:11
【问题描述】:
我有一个页面,我想在其中添加一些实际情况。这些实际情况将首先设置在 Sanity 中,然后通过 Next.js 获取。
我的理智模式
export default{
name:"actuality",
title:"Aktuality",
type:"document",
fields:[
{
name:"headline",
title:"Nadpis",
type:"string"
},
{
name:"publishedAt",
title:"Datum zveřejnění",
type:"datetime"
},
{
name:"body",
title:"Text",
type:"blockContent"
}
],
preview:{
select:{
title:"headline",
}
}
}
问题在于获取数据。
如果我这样做,它会起作用,但只会返回理智中的第一个现实
export const getServerSideProps = async (pageContext: any) => {
const query = `*[ _type == "actuality"][0]`;
const recipe = await client.fetch(query);
console.log(recipe);
if (!recipe) return { props: null, notFound: true };
else
return {
props: {
headline: recipe.headline,
publishedAt: recipe.publishedAt,
body: recipe.body,
},
};
};
但如果我删除 [0] 则会抛出错误:“原因:undefined 无法序列化为 JSON。请使用 null 或省略此值。”
为了获得一组 Actualities,我需要进行哪些更改?
【问题讨论】:
-
这可能是因为您从 fetch 中得到的是一组实际情况,而不是单个实际情况。返回道具时,您需要相应地更改代码。