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

当我试图使用GraphQL/阿波罗在React中从集合中获取一些数据时,出现了这个错误。基本上,我有以下两个问题:
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
const { data: treeParent } = useQuery(FIND_TREEPARENT);
console.log(FIND_TREEPARENT, 'tree parent');然后,我有一个useEffect,其中映射查询的信息,以便获得rootNode,只有当数据存在并且它一直运行treeParent.reportingContexts更改时:
useEffect(() => {
if (treeParent) {
treeParent.reportingContexts.map((context) => {
return getTreeNodes(context.rootNode)
})
// getTreeNodes(treeNodesFromQuery);
}
}, [treeParent.reportingContexts]);但接下来的问题是,如何将刚才从getTreeNodes查询中获得的rootNode传递给useEffect查询?为了从查询getTreeNodes获取所有信息?因为我确实认为我错过了其中的一些逻辑
const { data: treeNodesFromQuery } = useQuery(getTreeNodes);
// const getTreeNodes = async (treeNodes) => {
// console.log(treeNodes, 'TREE');
// };发布于 2022-02-14 11:56:27
首先,这不是你想要的字符串文字插值。此外,您没有将阿波罗客户端用于树节点查询。您应该使用查询变量,所以类似于treeNodesFromQuery ({ variables: { parent: context.rootNode } });而不是return getTreeNodes...
然后,您的查询将需要看起来更像
gql`
query($parent: <whatever parent's type is>) {
reportingTreeNodes(parent: $parent) {
name
_id
_partitionKey
hasQuotahttps://stackoverflow.com/questions/71111274
复制相似问题