У меня есть файл .ts
(не .tsx
), который просто экспортирует объект json, например
const obj = {
img1: gql_img1,
img2: gql_img2
}
Я хочу, чтобы gq1_img1
и gq1_img2
были результатами graphql query
Я нашел решение , которое использует Apollo Client, , но не похоже, что они используют Gatsby, и я не думаю, что Gatsby использует клиента.
Проблема с использованием useStaticQuery
заключается в том, что это перехватчик, если я попытаюсь использовать его, как в приведенном ниже фрагменте, я получу "Error: Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:"
const gql = () => {
const gql = useStaticQuery(graphql
`query adQuery {
invoiceNinja300x250: file(
extension: {regex: "/(jpg)|(jpeg)|(png)/"},
name: {eq: "IN-300x250-2"}
){
childImageSharp {
fluid(maxWidth: 250) {
...GatsbyImageSharpFluid_withWebp_noBase64
}
}
},
invoiceNinja600x300: file(
extension: {regex: "/(jpg)|(jpeg)|(png)/"},
name: {eq: "IN-600x300-2"}
){
childImageSharp {
fluid(maxWidth: 250) {
...GatsbyImageSharpFluid_withWebp_noBase64
}
}
}
}`
)
return gql
}
const GQL = gql()