react-native - 仅返回选定字段 React Native / GraphQL / Amplify
问题描述
我在 GraphQL 中有以下基本列表查询:
API.graphql(graphqlOperation(listSomething,{filter: filter})).then(({ data: { something } }) => {
// Returns the entire object
})
这将返回一个包含整个对象的数组,但正如我在多个 GraphQL 教程中看到的那样,出于显而易见的原因,我想利用仅返回/提取选择字段的实用程序。然而,关于 GraphQL + RN + Amplify 的信息并不多。那么我将如何重写此查询以仅返回属性id
?还是我必须在graphql
/queries.js
文件中将其定义为解析器?我正在使用自动生成的查询,因此将您自己的查询添加到该文件有点像一种反模式——如果我错了,请纠正我。
谢谢!
解决方案
我仍处于熟悉 AWS 的早期阶段,因此请持保留态度。
您自动生成queries.js
的将包含一个 listSomething 查询,看起来像这样:
export const listTodos = /* GraphQL */ `
query ListTodos(
$filter: ModelTodoFilterInput
$limit: Int
$nextToken: String
) {
listTodos(filter: $filter, limit: $limit, nextToken: $nextToken) {
items {
id
userID
name
description
createdAt
updatedAt
}
nextToken
}
}
`;
我创建了一个名为的新文件夹/src/customGraphQL
并创建了一个名为customListTodos.js
. 我在那里复制了自动生成的查询,更改了查询名称,并删除了我不需要的字段。
export const customListTodos = /* GraphQL */ `
query CustomListTodos(
$filter: ModelTodoFilterInput
$limit: Int
$nextToken: String
) {
listTodos(filter: $filter, limit: $limit, nextToken: $nextToken) {
items {
name
description
}
nextToken
}
}
`;
我只更改了查询的名称,但将内部函数的名称保留为listTodos
,因此我正在运行该查询的自定义版本。如果将原始 API 推送到 AWS,您可以导入并使用自定义查询:
import {customListTodos} from './src/customGraphQL/customListTodos';
...
API.graphql(graphqlOperation(customListTodos ...
推荐阅读
- mysql - MySql Workbench 目录视图宽度问题
- postgresql - Postgresql 12.2 中的递归
- javascript - 使用超时 NodeJS
- c# - 将数据从 MongoDB 加载到 SQL Server 的 SSIS 脚本任务出错:无法加载文件或程序集 MongoDB.Driver.Core
- javascript - 数组搜索和排序
- html - Div 未显示在屏幕上,我是否缺少一些 CSS 属性?
- r - 如何根据另一个闪亮小部件的值对闪亮小部件的值进行子集化
- azure - 如何从 Powershell Runbook 访问 VM 中的脚本文件
- scala - 在scala中扩展一个类是否也继承了辅助构造函数?
- javascript - 无法使用 ForEach 填充数组