【问题标题】:apollo client onSubscriptionData is not working阿波罗客户端 onSubscriptionData 不工作
【发布时间】:2019-02-15 06:43:16
【问题描述】:

我正在关注 apollo subscriptions tutorial 并且我的订阅正在运行,但我无法使用 onSubscriptionData 数据回调。

这是我的代码:

const MESSAGE_CREATED = gql`
  subscription {
    messageCreated {
      id
      content
    }
  }
`;

const MyComponent = () => (
  <Subscription
      subscription={MESSAGE_CREATED}
      onSubscriptionData={() => {
        console.log('subs');
      }}
    >
      {({ data, loading }) => {
        if (loading && !data) return <View />;
        return (
          <Text>New comment: {!loading && data.messageCreated.content}</Text>
        );
      }}
    </Subscription>
);

我的控制台上没有 subs 日志。

【问题讨论】:

    标签: reactjs react-native graphql apollo react-apollo


    【解决方案1】:

    此功能仅在“主”分支上可用。我刚刚对其进行了测试,'onSubscriptionData' 道具正在按预期工作。如果你想测试它,你应该:

    1. 将“react-apollo”包版本更新为“master”,如下所示:"react-apollo": "apollographql/react-apollo"

    2. 编译 TS 代码执行:cd node_modules/react-apollo && yarn && yarn compile

    3. 将所有导入路径从 'react-apollo' 重构为 'react-apollo/lib' 如下:import { Subscription } from 'react-apollo/lib'

    【讨论】:

    • 这确实有效,但对我的项目不可行。
    • 两个月后我没有时间等这件事发生
    • 检查 apollographql.com/docs/react/essentials/… 上的 'subscribeToMore' 属性。你可以在howtographql.com 上找到一个活生生的例子
    • subscribeToMore 是这个差距的替代方案,但我在订阅时的有效负载会很大。
    猜你喜欢
    • 2018-09-12
    • 2021-04-03
    • 2020-07-26
    • 2018-04-13
    • 2021-01-19
    • 2018-01-03
    • 2018-04-26
    • 2019-04-19
    • 2018-01-13
    相关资源
    最近更新 更多