javascript - 将 graphql 查询与订阅相结合
问题描述
我正在使用 graphql 订阅来获取实时消息流。我的问题是如何将它与查询结合起来,因为有来自过去的消息。
我的示例是我有一个MessagesQuery
组件可以获取所有以前的消息,但是为了显示较新的消息,我使用了一个MessageSubscription
组件。
谁能解释一下最好的方法?我发现了这个GitHub 问题,但不幸的是没有反馈。给定的。
解决方案
该问题描述了典型的方法——使用Query
组件或useQuery
钩子并调用subscribeToMore
来附加订阅。该用户的问题似乎是订阅在卸载时取消订阅,但这是适当且预期的行为。
示例用法:
const { subscribeToMore, ...result } = useQuery(MESSAGES_QUERY, otherOptions)
subscribeToMore({
document: MESSAGES_SUBSCRIPTION,
updateQuery: (prev, { subscriptionData }) => {
// merge the subscription data into the query result
},
})
有关其他详细信息,请参阅文档。
推荐阅读
- ios - 更改 UIDocumentBrowserViewController 创建文档按钮文本
- android - 将 Android App Bundle 上传到 Google Play 控制台 - 密钥签名错误
- spring - 使用 Tomcat(和 Spring REST)进行速率限制/节流
- git - 当我收到一个错误说存储库不存在(它确实存在)时,如何将本地存储库推送到 GitHub
- javascript - 如何访问外部摄像头?
- javascript - Javascript Regex:在逗号分隔的字符串中使用多个星号在两个星号之间捕获
- r - 如何在数据框中按列删除值?
- node.js - 需要建议将 React 应用程序转换为使用服务器端渲染
- sas - 拆分字符串以处理不同的部分并再次组合回一个 var
- excel - 我正在尝试使用可变参数复制范围