微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在react-apollo中等待多个useLazyQuery

如何解决如何在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 举报,一经查实,本站将立刻删除。