Apollo graphQL-您可以使用变量查询局部状态而不必使用解析器吗?

时间:2019-05-01 11:14:58

标签: graphql apollo react-apollo apollo-client

我正在使用apollo-cache-memory,apollo-client,react-apollo。

我的本​​地状态包含一个用户数组,如下所示:-

users: [{

__typename: "User",

userId: "hashid1",

...
},

{

__typename: "User",

userId: "hashid2",

...
}]

现在,我显然可以运行一个简单的查询来从本地状态检索所有用户:-

import gql from "graphql-tag"
export default gql`{users @client {userId}}`

但是,我想做的是能够直接查询用户数组,并像这样传递变量:-

const userDetails = await client.query({ query: USER_DETAILS, variables: {id: "hashId1"}})

是否可以在不使用解析器的情况下运行此查询?我尝试了以下操作,但是{data}返回null:-

export default gql`query user($id: String!) {users(userId: $id) @client {userId}}`

我已经使用了解析器,可以轻松编写一个解析器来解决此问题,但是我想知道是否可以不使用解析器来执行此任务?

1 个答案:

答案 0 :(得分:1)

您似乎正在寻找魔术;)

您必须编写自定义代码(覆盖默认解析器-返回所有记录)具有自定义行为(返回按您的条件过滤的数据)。那应该可以避免了。

graphql中没有默认/就绪/内置的搜索/过滤语法-因此,在apollo-client中(无论本地/远程服务器/数据),它们都没有默认行为。实施所需的内容取决于您。