在 Sanity Studio 中,我试图获取输入组件内的所有文档属性。按照这篇文章官方支持的方式获取文档内容我能够使用 withDocument HOC 来获取文档数据,但其中一些具有“引用”类型,因此我只能获取 _ref 和 _type 而不是整个对象。我怎样才能做到呢?
您可以使用解引用运算符 -> 来解引用值。因此,假设您有一个名为 book 的文档,其属性authors 是引用类型的数组。
您可以通过以下方式获取authors数组的值:
const books = await client.fetch(
`*[_type == "book"] {
...,
authors[]->
}`
)
Run Code Online (Sandbox Code Playgroud)
您可以查看有关 GROQ 查询的Sanity 文档以获取更多更好的信息。
我已经通过使用 Sanity Client 解决了这个问题。
在您的组件中导入客户端:
import client from 'part:@sanity/base/client';
Run Code Online (Sandbox Code Playgroud)
在 GROQ 查询中使用 _ref 作为 _id 开始查询
...
componentDidMount = () => {
client.fetch(`*[_type == "template" && _id == "<put _ref value here>"]{
title,
body
}`).then(response => {
console.info('RESPONSE', response);
})
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7551 次 |
| 最近记录: |