【问题标题】:Sanity newly added field is not showing on queries查询中未显示 Sanity 新添加的字段
【发布时间】:2021-09-10 10:12:39
【问题描述】:

我正在使用 sanity 创建一个 Web 应用程序。我在我的帖子模式中添加了一个数字“喜欢”字段。我可以在我的办公桌上看到点赞,但是当我查询 *[_type == 'post'] 时,我没有看到点赞字段。此外,当我尝试使用补丁功能增加“喜欢”字段时,客户抱怨该字段不存在。我该如何解决?

【问题讨论】:

    标签: javascript reactjs next.js sanity


    【解决方案1】:

    我想这些问题是由于您的帖子中尚未包含数据。让我们分解一下:

    补丁错误

    由于您不能增加未定义/空值,您必须首先在您的 likes 字段上运行 setIfMissing 以确保它存在。这是一些伪代码:

    client
      .patch(postId)
      .setIfMissing({ likes: 0 }) // ensure likes exist
      .inc({ likes: 1 }) // And only then increment it
      .commit()
    

    字段未出现在查询中

    默认情况下,GROQ 不会返回空值。这意味着,如果您的帖子没有设置 likes,您甚至不会在 API 返回的数据中看到此属性。

    如果您需要显示点赞,可以使用 GROQ 的 coalesce 函数为点赞提供默认值。这是一个示例查询:

    *[_type == "post"]{
      ...,
      // Default likes to 0
      "likes": coalesce(likes, 0),
    }
    

    希望这会有所帮助?

    【讨论】:

      猜你喜欢
      • 2022-01-08
      • 1970-01-01
      • 1970-01-01
      • 2019-08-20
      • 1970-01-01
      • 1970-01-01
      • 2016-04-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多