我正在尝试使用Relay Suscriptions Docs
设置基本订阅import { graphql, requestSubscription } from 'react-relay';
import environment from '../relay/environment';
const subscription = graphql`
subscription somethingHappenedSubscription {
somethingHappened {
id
status
}
}
`;
export default () => {
const subscriptionConfig = {
subscription,
updater: store => console.log('updater hit');
onError: error => console.log('An error occured:', error),
};
requestSubscription(environment, subscriptionConfig);
};
我正在按以下方式食用
import somethingHappenedSubscription from '../subscriptions/somethingHappened.js'
const MyComponent = () => {
somethingHappenedSubscription()
// return something simple
}
我已经能够确认所有这些连线都正确连接了,而且我已经看到了updater
函数的日志,尽管通常情况并非如此,但最终 会因为出现以下错误:
An error occured: TypeError: observable.do is not a function
at Object.execute (index.js:604)
at RelayModernEnvironment.js:251
at _subscribe (RelayObservable.js:579)
at RelayObservable.subscribe (RelayObservable.js:280)
at RelayObservable.js:195
at _subscribe (RelayObservable.js:579)
at RelayObservable.subscribe (RelayObservable.js:280)
at RelayObservable.js:195
at _subscribe (RelayObservable.js:579)
at RelayObservable.subscribe (RelayObservable.js:280)
我还没有找到确定何时或为什么发生这种情况的模式。
无处不在,但不知道它是什么来的,为什么它有时只会失败?
我正在使用以下软件包
"react-relay": "^7.1.0",
"relay": "^0.8.0-1",
"relay-hooks": "^1.2.5",
更新
我注意到可能有贡献的有趣事情(尽管我真的不知道如何做)是,如果我运行relay-devtools
(台式机版本),这似乎会发生。
不确定如何关联,但似乎只有在我打开它的情况下才会发生。