即使字段不存在,如何在Gatsby.js中使用此片段查询?

时间:2020-10-21 10:45:10

标签: graphql gatsby

我有一个Gatsby项目,并使用Wordpress作为源。我创建了一个名为“事件”的自定义帖子类型,该类型具有连接的ACF字段。 ACF字段之一是灵活的内容(content_events)。

我正在使用以下查询,但是仅当帖子中包含所有这些灵活内容部分时才起作用,这意味着如果作者未添加我​​试图从中获取数据的那些内容之一,则GraphQL查询将失败。我收到以下错误:Fragment cannot be spread here as objects of type "WordPressAcf_large_textWordPressAcf_medium_textUnion" can never be of type "WordPressAcf_image".

我听说过Gatsby中的架构,但不确定如何实现?还是有其他解决方法?

当前查询:

query ($id: Int!) {
    allWordpressWpEvents(filter: {wordpress_id: {eq: $id}}) {
      edges {
        node {
          title
          wordpress_id
          acf {
            signup_title
            signup_text
            location
            date
            image {
              localFile {
                childImageSharp {
                  fluid(maxWidth: 1440) {
                    ...GatsbyImageSharpFluid_withWebp
                  }
                }
              }
            }
            content_events {
                __typename
              ... on WordPressAcf_large_text {
                id
                text
              }
              ... on WordPressAcf_medium_text {
                id
                text
              }
              ... on WordPressAcf_image {
                id
                image {
                  localFile {
                    childImageSharp {
                      fluid(maxWidth: 1440) {
                        ...GatsbyImageSharpFluid_withWebp
                      }
                    }
                  }
                }
              }
            }
            form_sections {
              post_name
            }
          }
        }
      }
    }
  }

0 个答案:

没有答案