Apollo graphQL - 您可以使用变量查询本地状态而无需使用解析器吗?

Apollo graphQL - can you query local state using variables without having to use a resolver?

我正在使用 apollo-cache-inmemory、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 } returns 为空:-

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

我已经在使用解析器并且可以轻松编写一个来解决这个问题,但我想知道是否可以在没有解析器的情况下执行此任务?

看来您正在寻找魔法 ;)

您必须编写自定义代码(覆盖默认解析器 - return 所有记录)具有自定义行为(return 按您的条件过滤的数据)。那应该是显而易见的。

在 graphql 的 searching/filtering 语法中没有 default/ready/built - 因此,在 apollo-client 中没有它们的默认行为(无论 local/remote server/data) .由您来实现您所需要的。