如何解决中继根据查询结果重新运行查询的正确语法是什么
让我们说我有一个获取advisors
的查询。该查询返回连接到该顾问程序的顾问程序id
的列表。现在,我想重新运行以n
个数量id
为首的顾问的查询,并获取这些顾问。我只需要执行一次,而无需递归。
const query = graphql`
query AdvisorProfileQuery($id: ID!) {
advisor: node(id: $id) {
... on Advisor {
name
assignments (first: 100) {
edges {
node {
id <---- i want these ids and plug them back into the query to just get "name" of the list of ids
}
}
}
}
}
}
`;
const QueryRenderer = LoadingQueryRenderer(AdvisorProfile,query);
export default ({ i18n }) => {
const { id } = useParams();
return (
<>
<QueryRenderer params={{ id: id }} />
</>
);
};
解决方法
答案是创建一个片段并将其弹入...
父项
const query = graphql`
query AdvisorProfileQuery($id: ID!) {
advisor: node(id: $id) {
... on Advisor {
... BottomCardTable_advisor
name
}
}
}
`;
const QueryRenderer = LoadingQueryRenderer(AdvisorProfile,query);
export default ({ i18n }) => {
const { id } = useParams();
return (
<>
<QueryRenderer params={{ id: id }} />
</>
);
};
关于子组件
export default createFragmentContainer(TableComponent,graphql`
fragment BottomCardTable_advisor on Advisor {
assignments: assignments (first: 100) {
edges {
node {
id
primaryName
primaryEmail
assignedOn
type
}
}
}
}
`);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。