我正在使用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)的索引页代码,并给我一些有关丢失这些特定数据的提示吗?
答案 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>
))}