并非所有的graphql查询数据都在GatsbyJS页面上呈现

时间:2019-10-21 14:31:53

标签: graphql gatsby strapi

我正在使用Gatsby和Strapi无头CMS组成一个博客网站,并且正在使用GraphQL查询要显示在索引页面上的文章。

每篇文章都与Strapi中的类别类型相关。 文章和类别都是Strapi中单独的内容类型,并且通过关系字段进行链接。

我可以在GraphiQL中查询所有需要的数据,并且所有数据都将正确返回。

但是,当在Gatsby中实施查询时,将返回除“类别/名称”字段之外的所有字段。 下面是索引页面中当前使用的代码。

void main() async {
  // Takes ~50ms to get in iOS Simulator.
  final SharedPreferences sharedPreferences =
      await SharedPreferences.getInstance();

  runApp(MyApp(sharedPreferences: sharedPreferences));
}

class MyApp extends StatefulWidget {
  final SharedPreferences sharedPreferences;

  const MyApp({Key key, this.sharedPreferences})
      : assert(sharedPreferences != null),
        super(key: key);

  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  @override
  Widget build(BuildContext context) {
    // You can access shared preferences via widget.sharedPreferences
    return ...
  }

This is the GraphQL result from the query 编辑---为了清楚起见,我在GraphQL中添加了查询结果的屏幕截图。

在浏览器中呈现页面并呈现HTML元素后,控制台中不会显示任何错误。

有人可以看看我从盖茨比(Gatsby)的索引页代码,并给我一些有关丢失这些特定数据的提示吗?

1 个答案:

答案 0 :(得分:2)

您不会丢失数据,只是不正确地访问它们而已。仅使用document访问数据,请勿使用document.node

 {data.allStrapiArticle.edges.map(document => (
                <li key={document.id}>
                  <Link to={`/${document.id}`}>
                    <Img fixed={document.image.childImageSharp.fixed}/>
                    <p>
                      {document.categories.name}
                    </p>
                    <h2>
                      {document.title}
                    </h2>
                    <p>by {document.author.username}
                    </p>
                    <p>
                      {document.content}
                    </p>
                  </Link>
                </li>
              ))}