我需要使用graphQl将源数据传递到cms配置,但是当我尝试使用它时,出现错误 非页面组件“ C:/Users/NikitaSeliverstov/Desktop/amblik/src/cms/cms.js”中的GraphQL查询将不会运行。 如何在非页面组件中运行查询?
答案 0 :(得分:0)
目前不可能。在gatsby-node api中,只有运行graphql查询的位置位于组件中或createPages中。
答案 1 :(得分:0)
如果您使用的是Apollo客户端,请尝试在可从应用程序调用的服务类中扩展客户端。 apollo-link-http库将向您的GraphQL API发送获取请求。
import { createHttpLink } from 'apollo-link-http';
import gql from 'graphql-tag';
import { ApolloClient } from 'apollo-client';
import { InMemoryCache } from 'apollo-cache-inmemory';
const client = new ApolloClient({
link: createHttpLink({uri: "http://localhost:8000/graphql", credentials: 'include'}),
cache: new InMemoryCache({
addTypename: false
})
});
class dataService {
async fetchData(){
return await client.query({
query: gql`query FETCH_DATA{
fetchData{
data1
data2
data3
}
}`,
});
}