我遇到的问题是,当我尝试从另一个文件运行查询时,它似乎无法获取数据。奇怪的是,如果我仅在postQuery.js文件中运行一个查询,它就可以正常工作,但是当我尝试添加多个查询时,它就会中断。我不知道为什么,因为我要在switch语句中返回查询。
错误为“错误:无法获取此StaticQuery的结果。
这可能是盖茨比(Gatsby)的错误,如果刷新页面无法解决该问题,请在https://github.com/gatsbyjs/gatsby/issues“
中打开一个问题我已经尝试了几次清理项目并重新运行它。
postQuery.js
import React from 'react'
import { useStaticQuery, graphql } from 'gatsby'
const CaseStudies = graphql`
query {
allContentfulCaseStudy {
edges {
node {
title {
title
}
featuredImage {
fixed {
src
}
title
description
}
date(formatString: "MMMM DD YYYY")
content {
json
}
categories
type
}
}
}
}
`
const Testimonials = graphql`
query {
allContentfulTestimonial {
edges {
node {
title
quote {
quote
}
name
location
occupation
}
}
}
}
`
export const buildQuery = (slug) => {
console.log('slug', slug)
switch (slug) {
case 'case-studies':
return CaseStudies;
break;
case 'testimonials':
return Testimonials;
break;
default:
return null;
}
}
Category.js
import React, { Component } from 'react'
import { useStaticQuery, graphql } from 'gatsby'
import { buildQuery } from '../queries/postQuery'
const Category = ({data, slug}) => {
const postData = [];
const filters = [];
const post = useStaticQuery(buildQuery(slug));
console.log('post', Object.keys(post))
return (<div>test</div>)
}
export default Category