在Sanity Studio中,我试图将所有Document的属性都包含在输入Component中。按照本文An officially supported way to get at the document content的介绍,我可以使用withDocument HOC来获取Document数据,但是其中一些具有“引用”类型,因此我只能获取_ref和_type而不是整个对象。我该怎么做?
更新:我已经通过使用Sanity Client弄清楚了。
将客户端导入您的组件中
import client from 'part:@sanity/base/client';
在GROQ查询中开始使用_ref作为_id进行查询
...
componentDidMount = () => {
client.fetch(`*[_type == "template" && _id == "<put _ref value here>"]{
title,
body
}`).then(response => {
console.info('RESPONSE', response);
})
}
答案 0 :(得分:1)
我已经使用Sanity Client弄清楚了。
将客户端导入您的组件中
import client from 'part:@sanity/base/client';
在GROQ查询中开始使用_ref作为_id进行查询
...
componentDidMount = () => {
client.fetch(`*[_type == "template" && _id == "<put _ref value here>"]{
title,
body
}`).then(response => {
console.info('RESPONSE', response);
})
}
答案 1 :(得分:0)
您可以使用解引用运算符->来解引用值。因此,假设您有一个名为book的文档,其中包含属性作者,它是引用类型的数组。
您可以通过以下方式获取authors数组的值:
const books = await client.fetch(
`*[_type == "book"] {
...,
authors[]->
}`
)
您可以在GROQ查询上查看Sanity's docs,以获取更多更好的信息。