Graphql Apollo-如何将联合类型传递给Apollo客户端

Graphql Apollo-如何将联合类型传递给Apollo客户端,graphql,apollo,react-apollo,Graphql,Apollo,React Apollo,我正在使用Shopify GraphQL应用一个突变,如下图所示 我想为ShopifyReturnUrl声明一个联合类型,我已经声明了: import gql from 'graphql-tag'; const shopifyReturnUrl = gql` union ShopifyReturnUrl = String | URL `; 但是,我如何将其实际放入当前定义如下的Apollo客户端实例中: const client = new ApolloClient({ fetc

我正在使用Shopify GraphQL应用一个突变,如下图所示

我想为
ShopifyReturnUrl
声明一个联合类型,我已经声明了:

import gql from 'graphql-tag';

const shopifyReturnUrl = gql`
  union ShopifyReturnUrl = String | URL
`;
但是,我如何将其实际放入当前定义如下的Apollo客户端实例中:

const client = new ApolloClient({
    fetchOptions: {
        credentials: 'include'
    },
});
在上下文中,我在我的React应用程序中使用如下内容:

<ApolloProvider client={client}>
    <Component {...pageProps} />
</ApolloProvider>
谢谢你的帮助


谢谢。

这里有几个问题:

  • 只能为对象类型创建联合,而不能为
    String
    之类的标量创建联合
  • 类型定义写在服务器上,而不是客户机上。作为客户机,您不能向服务器公开的模式添加其他类型,因为服务器不知道如何处理这些类型
  • 如果
    appSubscriptionCreate
    采用
    returnUrl
    参数,则传递给该参数的变量(在本例中命名为
    $returnUrl
    )应与参数的类型相同。如果您不知道参数的类型,请检查服务器或其(如果它公开了参数)。在这个特定的例子中,参数的类型是
    URL,所以这就是您的变量应该是什么

谢谢你。事实上,我发现使用字符串作为一种类型根本不需要,所以我这边不需要联合(正如你的第三点所确认的)。尽管如此,上述知识对于将来的参考是有用的。干杯
export const SUBSCRIPTION_MODIFY = gql`
  mutation($subName: String!, $subPrice: String!, $returnUrl: ShopifyReturnUrl) {
    appSubscriptionCreate(
        name: $subName
        returnUrl: $returnUrl
      ) 
  }
`