在使用AWS Amplify进行@key或索引查询时,避免使用@connection查询生成列表的方法可以通过以下步骤解决:
在使用@key或索引查询时,使用普通的GraphQL查询语法而不是@connection查询语法。@connection查询语法会自动将关联模型的数据加载到查询结果中,这可能会导致不必要的数据加载和性能问题。
使用适当的过滤器和排序参数来限制返回的结果。这样可以减少返回的数据量并提高查询性能。
下面是一个示例代码,演示如何使用普通的GraphQL查询语法来进行@key或索引查询:
import { API, graphqlOperation } from 'aws-amplify';
// 定义GraphQL查询语句
const listItemsByCategory = `
query ListItemsByCategory($category: String!) {
listItemsByCategory(category: $category) {
items {
id
name
description
price
}
}
}
`;
// 定义查询变量
const category = 'electronics';
// 发起查询
API.graphql(graphqlOperation(listItemsByCategory, { category }))
.then(response => {
const items = response.data.listItemsByCategory.items;
console.log(items);
})
.catch(error => {
console.error(error);
});
在上面的示例中,我们使用了普通的GraphQL查询语法来查询指定类别的商品列表。这样可以避免@connection查询语法自动加载关联模型的数据,只返回我们所需要的商品信息。