带有承诺的用户Apollo GraphQL

问题描述

我正在使用GraphQL构建React本机应用程序。当应用程序进入前台时,我必须进行一次数调用并从本机层发生事件。

const eventEmitter = new NativeEventEmitter(NativeModules.EventEmitter)
    if (eventEmitter.listeners(Constants.callBacks.NativeSideEventReceived).length === 0) {
      eventEmitter.addListener(Constants.callBacks.NativeSideEventReceived,(linearIngressData) => {
        
const {data,error} = useQuery(CONTENT,{
  variables: {
    deviceLocale,contentId,contentType: Json
  },skip: shouldSkip
})


      })
    }

问题是,我不能在事件处理程序中使用useQuery,因为要使用useQuery我必须在react组件内部。

一旦数据可用,我就必须调度一些事件。

const dispatch = useContext(dispatchContext)
if (data) {
    dispatch({
      type: '_CHANGE',content: data.content
    })
  }

如何将 promise对象与GQL一起使用,以确保数据可用。如果在数据可用之前我收到了 NativeSideEventReceived ,那么我必须等到响应可用以调度状态事件为止。

我不能使用useQuery的onComplete函数,因为要使用useQuery,我已将其移至功能组件,但是一旦事件接收到事件,则只需要分派事件。使用onComplete无法保证在收到事件 NativeSideEventReceived 后会调用onComplete。

谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)