reactjs - Apollo `subscribeToMore` 变量是否必须与初始查询匹配?
问题描述
ApollosubscribeToMore
变量是否必须与初始查询匹配?例如,如果我的初始查询是
const { data, loading, error } = useQuery(INBOX)
其中变量来自服务器中验证的 id(不是从客户端发送的)
async inbox(parent, args, { request, prisma }, info) {
const id = await getUserId(request)
if (!user.email) {
throw new Error('You must be logged in!')
}
return prisma.query.user({
where: {
id,
}
},info)
}
如果订阅解析器如下所示:
newInbox: {
subscribe: (parent, args, { pubsub }, info) => pubsub.asyncIterator(PUBSUB_NEW_INBOX)
},
由于订阅本身没有过滤变量,订阅数据是否会被发送到数据库中的每个客户端,或者它是否会识别出初始查询已经有自己的变量?
换句话说,有必要做如下的事情吗?
newInbox: {
subscribe: withFilter(
(parent, args, { pubsub }, info) => pubsub.asyncIterator(PUBSUB_NEW_INBOX),
(payload, variables) => payload.newInbox.id === variables.id
)
},
通过从客户端发送变量?
解决方案
推荐阅读
- python - 具有紧密轴和匹配纵横比的散景图像图
- azure - Azure 开发人员用户同意应用访问公司数据
- javascript - JS 数组排序。如何从数组中删除匹配值
- batch-file - 我不能在 Windows 10 的启动文件夹中删除文件吗
- java - 如何使用插件编译带有 JVM 参数的 Maven JAR 文件?
- python - Left Join 使用 3 个不同的表 - django
- php - 单击 Href 时制作文件
- python - 用另一个列表提供的数据填充多维列表(Python3)
- c# - unity c# - 重播声音重叠
- reactjs - “动作必须是普通对象”......但它是