盖茨比GraphQL React

时间:2020-05-12 12:48:01

标签: reactjs graphql gatsby

由于我在Graphql中使用了一些Apollo,所以apollo查询提供了“加载”功能,在这里我可以通过检查加载状态来简单地渲染一些加载器。

虽然Iam使用Gatsby和useStaticQuery钩子我无法获取任何“加载”状态,但可以通过某种方式对其进行检查吗?也许除了useStaticQuery之外还有其他钩子?有人可以帮我解释一下吗?

1 个答案:

答案 0 :(得分:0)

Gatsby在构建时运行查询,并在以后将其替换为JSON文件导入,这就是为什么不需要加载状态的原因,因为查询已经具有针对它们的数据

根据Gatsby documentation

特定于查询在安装过程中设置的GraphQL服务器的代码 建立时间不再重要,可以交换出来 为每个查询提取的JSON数据。

与GraphQL和查询声明相关的导入更改为 对应于Gatsby查询结果的JSON导入 在运行查询时找到

例如,以下组件


import { useStaticQuery, graphql } from "gatsby"
export () => {
  const data = useStaticQuery(graphql`
      siteMetadata {
        site {
            title
        }
      }
  `)
  return (
    <h1>
        {data.siteMetadata.site.title}
    </h1>
  )
}

在构建后,

将被以下代码覆盖

import dataJson from `/d/<hash>.json`
export () => {
  const data = dataJson
  return (
    <h1>
        {data.siteMetadata.site.title}
    </h1>
  )
}