如何解决如何在react-apollo中等待多个useLazyQuery
我有一个 gql
查询 MY_Q
并有一个数据项列表,例如 data_list = [data1,data2]
如何在每个数据项上对多个 useLazyQuery()
进行分组并等待所有查询完成后再处理数据。
类似于Promise.all()
。
示例:-
Promise.all (data_list.map((e) => useLazyQuery(MY_Q,{ variables : { data :
e}}))).then ((res) {
//process result.
})
解决方法
我不会使用 promises,因为你会想要钩子在你的 React 组件中返回的东西,不是吗?
只需为每个单独的查询定义钩子,然后根据目前返回的内容进行渲染。当所有东西都被获取时渲染,如果没有,则在组件中渲染一个加载视图。
function SomeComponent () {
const [fetchInitial,{data,fetchMore}] = useLazyQuery(QUERY,{
variables: {
dataSets: [
dataSet1,dataSet2
]
}
});
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。