1

我的问题很简单,我需要根据登录我的应用程序的用户类型(使用 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感到满意的人可以帮助我在这里做什么吗?非常感激!

4

1 回答 1

1

因此,当您编写查询时,您想要做的是以下内容。

  1. 类型上的片段
  2. 指定片段上的行为

概括一下

query {
 _id
 name
 ... on UserType1 {
   #UserType1Fieldshere
 }
 ... on UserType2 {
   #UserType2fieldshere
 }

这允许您根据返回的用户类型请求特定字段。您可能希望将用户分组到“接口类型”或联合下,以便描述关系。

在这里:https ://medium.com/the-graphqlhub/graphql-tour-interfaces-and-unions-7dd5be35de0d

是一个很好的指南,可以更详细地介绍。

于 2017-05-23T15:12:24.713 回答