【问题标题】:Apollo Client useQuery react hook for GET requestsApollo 客户端使用 GET 请求的查询反应钩子
【发布时间】:2021-12-14 18:47:31
【问题描述】:

我试图从中提取的 API 资源需要一个 GET 请求。 如何使用 useQuery 钩子发送 GET 请求,它似乎只发送 POST 请求。

在我对 GraphQL 的有限理解中,是否应该更改服务器以使 GET_ALL_MODELS 的端点是 POST 请求,或者我是否需要更改前端的某些内容以便我的查询发送 GET 方法请求。

【问题讨论】:

    标签: reactjs apollo-client react-apollo graphql-js react-apollo-hooks


    【解决方案1】:

    有两种方法可以实现。

    一个是设置您的ApolloClient 以将所有查询发送为GET。这是使用HttpLink with useGETForQueries as true

    实现的
    import { ApolloClient, InMemoryCache, HttpLink, ApolloLink } from '@apollo/client';
    
    const client = new ApolloClient({
      cache: new InMemoryCache(),
      link: new HttpLink({
        uri: '/graphql',
        useGETForQueries: true
      }),
    });
    

    如果您需要针对特定​​查询执行此操作,您可以 override the ApolloLink context 并将 fetchOptions.method 设置为 GET

    const query = useQuery(gql`...`, {variables: {...}, context: {fetchOptions: {method: 'GET'}}})
    

    【讨论】:

    • 真的很有帮助,谢谢,我已经浏览了很多次文档,发现自己在 useQuery 挂钩文档中徘徊,
    猜你喜欢
    • 2020-04-02
    • 2021-08-13
    • 2019-12-31
    • 2020-04-16
    • 2013-06-12
    • 2020-10-19
    • 2021-04-04
    • 2021-05-28
    • 2017-10-17
    相关资源
    最近更新 更多