问题描述
我正在使用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 (将#修改为@)