在 Sanity Studio 中,我试图在输入组件中获取所有 Document 的属性。按照这篇文章官方支持的获取文档内容的方法我可以使用 withDocument HOC 来获取文档数据,但是其中一些具有“引用”类型,因此我只能获取 _ref 和 _type 而不是整个对象。我怎样才能做到?
问问题
2196 次
2 回答
5
您可以使用取消引用运算符 -> 取消引用这些值。因此,假设您有一个名为 book 的文档,其属性 authors 是一组引用类型。
您可以通过这种方式获取作者数组的值:
const books = await client.fetch(
`*[_type == "book"] {
...,
authors[]->
}`
)
您可以查看关于 GROQ 查询的Sanity 文档以获取更多更好的信息。
于 2020-11-28T16:06:27.797 回答
2
我已经通过使用 Sanity Client 解决了这个问题。
在组件中导入客户端:
import client from 'part:@sanity/base/client';
开始使用 _ref 作为 GROQ 查询中的 _id 进行查询
...
componentDidMount = () => {
client.fetch(`*[_type == "template" && _id == "<put _ref value here>"]{
title,
body
}`).then(response => {
console.info('RESPONSE', response);
})
}
于 2019-09-26T16:11:54.007 回答