javascript - Apollo/GraphQL/React,如何循环查询数据?
问题描述
在我的一个 React 组件中,我有一个数组,其中包含许多作为字符串的 ID。我想查询数组中的每个 ID 并在我的 MongoDB 数据库中返回其关联对象的数组。但是,这只是有条件地发生,所以我想使用 useLazyQuery 而不是 useQuery。
我试图通过映射来完成它,但似乎我在使用 useLazyQuery 时遇到了问题。这是问题:
const [queryId, {loading, data}] = useLazyQuery[QUERY_ID];
if (queryForIds) {
// Using just the first ID
(queryId({variables: {id: idList[0]}}));
console.log(data);
}
这会导致没有打印任何内容的无限循环(也许我的解析器什么都不返回,但无论我得到一个使我的网站崩溃的无限循环)。我很可能滥用 useLazyQuery 但我不确定如何。
最初我的想法是这样做:
const [queryId, {loading, data}] = useLazyQuery[QUERY_ID];
if (queryForIds) {
// Using just the first ID
idList.map((id) => (queryId({variables: {id: idList[0]}}))).data);
}
但我也不确定这是否也有效。我该如何解决这两个问题?
解决方案
推荐阅读
- spring - 如何使用 JDBCTemplate 检查有效的数据库连接
- c++ - ProjectileMovement 在第二次生成时不起作用
- python - 使用其他函数中定义的参数
- qt - Qml Module not found CPP Class registration with new QML_ELEMENT r
- python - numpy where output - 我如何使用该值?
- r - r中的自动排序
- node.js - 如何公开应用程序 docker 构建版本?
- mysql - MySQL:(嵌套/子)同一张表上的查询
- angular - 将 Bootstrap 3 升级到 4 给出“DevTools 无法加载 SourceMap:无法加载内容”
- javascript - 如何使用 discord.js 中的频道 ID 以字符串格式获取频道名称