【问题标题】:How to set client in useQuery Apollo in ReactJs如何在 ReactJs 中在 useQuery Apollo 中设置客户端
【发布时间】:2020-04-16 10:45:55
【问题描述】:

我想更改上下文中设置的 url。这里我要使用useQuery,在使用Query的时候我成功设置了一个新的url客户端,如下。

const onlineDocumentServiceClient = new ApolloClient({
  uri: process.env.REACT_APP_GQL_ODS
});

<Query query={QUERY} client={onlineDocumentServiceClient}>

我不明白如果使用 useQuery 可以像 Query 那样做。我在https://www.apollographql.com/docs/react/data/queries/#executing-queries-manually发现使用查询也可以由客户端设置

【问题讨论】:

    标签: reactjs graphql apollo


    【解决方案1】:

    您只需将其作为选项传递:

    const { data, loading, refetch } = useQuery(MY_QUERY, { client: myClient });
    

    【讨论】:

    • 但是为什么循环这么多?如果不使用客户端选项,则不会循环。
    • 不确定您的意思?
    • 我的意思是,像ibb.co/fY3y2XP 这样的重复请求。而如果我不使用“客户端”但代码是这样的“const { data, loading, refetch } = useQuery(MY_QUERY)”,它不会重复请求。
    • 每次调用函数组件时都会运行请求。如果不传入客户端,客户端是从哪里来的?唯一的另一种方法是使用 ApolloProvider,在这种情况下,您根本不需要传递客户端,除非它是不同的客户端。
    • 就我而言,后端有 2 个不同的 url。 1 我把它放在 index.js (ApolloProvider) 和我想直接在 useQuery 中实现的其他 url (不太容易访问) 上。有什么提示可以解决我的问题吗?
    猜你喜欢
    • 2021-02-23
    • 2020-06-04
    • 2020-09-02
    • 2020-03-01
    • 2018-06-04
    • 2017-11-14
    • 2019-01-05
    • 1970-01-01
    • 2018-02-25
    相关资源
    最近更新 更多