首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何解决:传递给解析器不是一个有效的GraphQL DocumentNode。使用“graphql-tag”或其他方法将您的操作转换为文档

如何解决:传递给解析器不是一个有效的GraphQL DocumentNode。使用“graphql-tag”或其他方法将您的操作转换为文档
EN

Stack Overflow用户
提问于 2022-02-14 11:40:55
回答 1查看 741关注 0票数 -1

尽管我进口了:import {gql} from 'graphql-tag';

当我试图使用GraphQL/阿波罗在React中从集合中获取一些数据时,出现了这个错误。基本上,我有以下两个问题:

代码语言:javascript
复制
export const FIND_TREEPARENT = gql`
query {
  reportingContexts {
        rootNode
    name
  }
}`

export const getTreeNodes = (parent) => gql`
 query {
  reportingTreeNodes(query:{parent: "${parent}"}) {
   name
   _id
   _partitionKey
    hasQuota
   nextRootNode
   parent
   referenceId
   title
   tree
 }
 }
`;

我需要基于上面的查询的字段(getTreeNodes)获取第二个查询rootNode的信息。基本上,FIND_TREEPARENT、getTreeNodes、共享相同的根节点/父节点,这是一个id。

但是我有点困惑如何使用函数或useEffect来处理这些查询。例如,我获得查询FIND_TREEPARENT的信息如下:

// FIND_TREEPARENT

代码语言:javascript
复制
  const { data: treeParent } = useQuery(FIND_TREEPARENT);
  console.log(FIND_TREEPARENT, 'tree parent');

然后,我有一个useEffect,其中映射查询的信息,以便获得rootNode,只有当数据存在并且它一直运行treeParent.reportingContexts更改时:

代码语言:javascript
复制
 useEffect(() => {
    if (treeParent) {
        treeParent.reportingContexts.map((context) => {
          return getTreeNodes(context.rootNode)
        })
      //  getTreeNodes(treeNodesFromQuery);
    }
  }, [treeParent.reportingContexts]);

但接下来的问题是,如何将刚才从getTreeNodes查询中获得的rootNode传递给useEffect查询?为了从查询getTreeNodes获取所有信息?因为我确实认为我错过了其中的一些逻辑

代码语言:javascript
复制
  const { data: treeNodesFromQuery } = useQuery(getTreeNodes);
  // const getTreeNodes = async (treeNodes) => {
  //   console.log(treeNodes, 'TREE');
  // };
EN

回答 1

Stack Overflow用户

发布于 2022-02-14 11:56:27

首先,这不是你想要的字符串文字插值。此外,您没有将阿波罗客户端用于树节点查询。您应该使用查询变量,所以类似于treeNodesFromQuery ({ variables: { parent: context.rootNode } });而不是return getTreeNodes...

然后,您的查询将需要看起来更像

代码语言:javascript
复制
gql`
 query($parent: <whatever parent's type is>) {
  reportingTreeNodes(parent: $parent) {
   name
   _id
   _partitionKey
    hasQuota
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71111274

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档