如何不在组件Gatsby中运行GraphQL查询

时间:2019-08-15 12:04:35

标签: graphql gatsby

我需要使用graphQl将源数据传递到cms配置,但是当我尝试使用它时,出现错误 非页面组件“ C:/Users/NikitaSeliverstov/Desktop/amblik/src/cms/cms.js”中的GraphQL查询将不会运行。 如何在非页面组件中运行查询?

2 个答案:

答案 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
             }
         }`,
     });
 }