Я использую Shopify GraphQL, чтобы применить мутацию, как показано внизу.
Я хочу объявить тип объединения для ShopifyReturnUrl в той мутации, для которой я объявил это:
import gql from 'graphql-tag';
const shopifyReturnUrl = gql`
union ShopifyReturnUrl = String | URL
`;
Однако как мне на самом деле получить это в моем экземпляре ApolloClient, который в настоящее время определен так:
const client = new ApolloClient({
fetchOptions: {
credentials: 'include'
},
});
И для контекста я использую это в своем приложении React так:
<ApolloProvider client = {client}>
<Component {...pageProps} />
</ApolloProvider>
Наконец, мутация, которую я действительно хочу использовать ShopifyReturnUrl
export const SUBSCRIPTION_MODIFY = gql`
mutation($subName: String!, $subPrice: String!, $returnUrl: ShopifyReturnUrl) {
appSubscriptionCreate(
name: $subName
returnUrl: $returnUrl
)
}
`
Любая помощь приветствуется.
Спасибо.


Здесь есть пара вопросов:
String.appSubscriptionCreate принимает аргумент returnUrl, то переменная, которую вы передаете этому аргументу (в данном случае с именем $returnUrl), должна быть того же типа, что и аргумент. Если вы не знаете тип аргумента, проверьте документацию вашего сервера или его интерфейс GraphiQL (если он его предоставляет). В данном конкретном случае тип аргумента — URL!, поэтому ваша переменная должна быть именно такой.
Спасибо за это. На самом деле я понял, что использование String как одного из типов вообще не требуется, поэтому с моей стороны не требуется никакого объединения (что подтверждается вашим третьим пунктом). Тем не менее, вышеизложенное является полезным знанием для дальнейшего использования. Ваше здоровье!