将 graphql 的片段与 Apollo 一起使用时遇到问题
Having trouble using graphql's fragments with Apollo
我的问题很简单,我需要根据登录我的应用程序的用户类型(使用 react/redux/graphql/apollo)获得不同的菜单功能。
我一切正常,但我的 graphql 查询获取我需要的信息目前看起来像这样:
const currentUsr = gql`
query getCurrentUser {
getCurrentUser{
firstname,
id_users,
menuItem {
title,
url,
id_parent,
is_parent,
icon,
id_menu_item,
childs {
title,
url,
id_parent,
is_parent,
icon,
id_menu_item,
childs {
title,
url,
id_parent,
is_parent,
icon,
id_menu_item
}
}
}
}
}
`;
很明显我想在这里使用片段,让它看起来更像这样:
我的 fragment
会像
fragment itemInfo{
title,
title,
url,
id_parent,
is_parent,
icon,
id_menu_item
}
我想要的结果:
const currentUsr = gql`
query getCurrentUser {
getCurrentUser{
firstname,
id_users,
menuItem {
...itemInfo
childs {
...itemInfo
childs {
...itemInfo
}
}
}
}
}
我在文档上找不到简单的解释,至少我没有理解正确。我不知道我是否需要创建片段服务器或客户端,以及如何正确地进行。有人可以接受 graphql/apollo 帮助我在这里做什么吗?非常感谢!
因此,当您编写查询时,您要做的是以下内容。
- 类型片段
- 指定片段的行为
概括一下
query {
_id
name
... on UserType1 {
#UserType1Fieldshere
}
... on UserType2 {
#UserType2fieldshere
}
这允许您根据要返回的用户类型请求特定字段。您可能希望将您的用户分组在 "interface type" 或联合下,以便描述关系。
此处:https://medium.com/the-graphqlhub/graphql-tour-interfaces-and-unions-7dd5be35de0d
是一本很好的指南,内容更详细。
我的问题很简单,我需要根据登录我的应用程序的用户类型(使用 react/redux/graphql/apollo)获得不同的菜单功能。
我一切正常,但我的 graphql 查询获取我需要的信息目前看起来像这样:
const currentUsr = gql`
query getCurrentUser {
getCurrentUser{
firstname,
id_users,
menuItem {
title,
url,
id_parent,
is_parent,
icon,
id_menu_item,
childs {
title,
url,
id_parent,
is_parent,
icon,
id_menu_item,
childs {
title,
url,
id_parent,
is_parent,
icon,
id_menu_item
}
}
}
}
}
`;
很明显我想在这里使用片段,让它看起来更像这样:
我的 fragment
会像
fragment itemInfo{
title,
title,
url,
id_parent,
is_parent,
icon,
id_menu_item
}
我想要的结果:
const currentUsr = gql`
query getCurrentUser {
getCurrentUser{
firstname,
id_users,
menuItem {
...itemInfo
childs {
...itemInfo
childs {
...itemInfo
}
}
}
}
}
我在文档上找不到简单的解释,至少我没有理解正确。我不知道我是否需要创建片段服务器或客户端,以及如何正确地进行。有人可以接受 graphql/apollo 帮助我在这里做什么吗?非常感谢!
因此,当您编写查询时,您要做的是以下内容。
- 类型片段
- 指定片段的行为
概括一下
query {
_id
name
... on UserType1 {
#UserType1Fieldshere
}
... on UserType2 {
#UserType2fieldshere
}
这允许您根据要返回的用户类型请求特定字段。您可能希望将您的用户分组在 "interface type" 或联合下,以便描述关系。
此处:https://medium.com/the-graphqlhub/graphql-tour-interfaces-and-unions-7dd5be35de0d
是一本很好的指南,内容更详细。