我正在使用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}}`
我已经使用了解析器,可以轻松编写一个解析器来解决此问题,但是我想知道是否可以不使用解析器来执行此任务?
答案 0 :(得分:1)
您似乎正在寻找魔术;)
您必须编写自定义代码(覆盖默认解析器-返回所有记录)具有自定义行为(返回按您的条件过滤的数据)。那应该可以避免了。
graphql中没有默认/就绪/内置的搜索/过滤语法-因此,在apollo-client中(无论本地/远程服务器/数据),它们都没有默认行为。实施所需的内容取决于您。