繁体   English   中英

如何在 apollo-client 中设置全局变量

[英]How to setup global variables in apollo-client

我正在尝试为所有graphql查询设置全局变量,我使用 Apollo-client,它在其设置中提供了 defaultOptions,我可以在其中设置变量,但突变更新中的突变和查询会忽略它们。

return new ApolloClient({
    connectToDevTools: isBrowser,
    ssrMode: !isBrowser, // Disables forceFetch on the server (so queries are only run once)
    link: new HttpLink({
        uri: GRAPHQL_URL, // Server URL (must be absolute)
        credentials: 'same-origin', // Additional fetch() options like `credentials` or `headers`
        // Use fetch() polyfill on the server
        fetch: !isBrowser ? fetch : undefined,
    }),
    cache: new InMemoryCache().restore(initialState || {}),
    defaultOptions: {
        mutate: { variables: { domain: NEW_YORK_GQL_DOMAIN } },
        watchQuery: { variables: { domain: NEW_YORK_GQL_DOMAIN } },
        query: { variables: { domain: NEW_YORK_GQL_DOMAIN } },
    },
});

真的不知道我做错了什么,任何帮助表示赞赏。

如果您使用附加变量调用ApolloClient.query ,它将完全覆盖默认变量。 因此,您应该能够执行以下操作:

const result = await apolloClient.query({
  query,
  variables: {
    ...apolloClient.defaultOptions.query.variables,
    uri
  }
});

诸如useQuery的钩子似乎可以将默认变量与任何其他变量正确合并,因此useQuery

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM