graphql - Apollo graphQL - 您可以使用变量查询本地状态而无需使用解析器吗?
问题描述
我正在使用 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 } 返回为空: -
export default gql`query user($id: String!) {users(userId: $id) @client {userId}}`
我已经使用了解析器,并且可以轻松编写一个来解决这个问题,但我想知道是否有可能在没有解析器的情况下执行此任务?
解决方案
看起来你正在寻找一些魔法;)
您必须编写自定义代码(覆盖默认解析器 - 返回所有记录)以具有自定义行为(返回按您的条件过滤的数据)。那应该是不言而喻的。
graphql 中没有默认/就绪/内置的搜索/过滤语法 - 因此,在 apollo-client 中没有默认行为(无论本地/远程服务器/数据)。由你来实现你所需要的。
推荐阅读
- angular - 在angular 8中完成几个函数后调用一个函数
- javascript - 如何在 React 应用程序中更改静态资产的缓存策略(使用 create-react-app 创建)
- python - 在数字之间留一个空格
- javascript - Angular 9 应用程序错误:材料卡网格没有响应
- ios - 如何从失败的苹果收据验证中恢复?
- loops - 如何在批量电子邮件的循环中包含 PHPMailer?
- java - Apache POI 图表轴 endarrow
- java - 访问不同目录中的文本文件
- python - 尝试使用坐标轴将小部件添加到 kivy 的 GridLayout 时出现意外的索引行为
- binary - 如何最大化二进制表达式的价值?