如何使用 Apollo GraphQL 更改查询值(其中: )

Posted

技术标签:

【中文标题】如何使用 Apollo GraphQL 更改查询值(其中: )【英文标题】:How change query value (where : ) with Apollo GraphQL如何使用 Apollo GraphQL 更改查询值(其中: ) 【发布时间】:2020-04-26 03:06:41 【问题描述】:

使用 graphQL,我们可以使用“where”获取数据

query
  activities(where: date: "2020-08-01")
    date
    collect
  

如何将日期值更改为参数?

我试试这个:

let date = "2020-01-08"
const  loading, error, data  = useQuery(GET_ACTIVITY, 
    variables: 
      input: 
        where:  date: date 
      
    
  );

【问题讨论】:

where 这样的任何参数都特定于您正在查询的任何架构。 GraphQL 没有提供过滤或排序数据的内置方法——这取决于每个单独的服务来实现此功能。 【参考方案1】:

首先来自后端的schema definition 必须是这样的:

type Activity 
  date: String
  collect: String
  ...


type Query 
  activities(date: String): [Activity]
  ...

然后在前端使用来自@apollo/clientgql 函数创建查询:

import  gql, useQuery  from '@apollo/client';

...

const GET_ACTIVITY = gql`
  query Activities($date: String!) 
    activities(date: $date)
      date
      collect
    
  
`;

最后这样称呼它:

let date = "2020-01-08";
const  loading, error, data  = useQuery(GET_ACTIVITY, 
  variables: 
    date
  
);

更多查询:https://www.apollographql.com/docs/react/data/queries

【讨论】:

我有以下错误:“查询”类型的字段“活动”上的未知参数“日期”。” 我想使用“where : json”获取 apollo中没有where,可以分享一下Activity的schema定义吗?

以上是关于如何使用 Apollo GraphQL 更改查询值(其中: )的主要内容,如果未能解决你的问题,请参考以下文章

如何从 graphQL apollo 突变或查询上的 cookie 更新授权标头

如何使用 apollo / graphql 实现节点查询解析器

如何使用 apollo 服务器从变量运行 graphql 查询

如何使用 react-apollo 使用相同的查询进行多个 graphql 查询?

GraphQL + Apollo - 如何强制进行查询,似乎正在缓存一些东西

使用 nuxt-apollo 时如何使用 GraphQL 查询?