gpt4 book ai didi

meteor - 查询被另一个查询过滤时的 react 更新

转载 作者:行者123 更新时间:2023-12-01 08:35:55 24 4
gpt4 key购买 nike

我今天才开始使用 meteor ,似乎无法弄清楚我做错了什么。我有一个在发布函数内部运行的查询,但是这个查询被另一个查询的结果过滤了。

简而言之,当我将文档添加到正在发布的数据库 (CollectionTwo) 时,它会按预期工作,但是当我在用于过滤 (CollectionOne) 的数据库中进行更改时,meteor 不会t 表现得很被动。

CollectionOne = new Meteor.Collection("one")
CollectionTwo = new Meteor.Collection("two")

Meteor.publish("items", ->
not_hidden = CollectionOne.find().fetch()
return CollectionTwo.find( _id: {'$in':( t.my_id for t in not_hidden )} )
)

同时,在客户端...

CollectionOne = new Meteor.Collection("one")
CollectionTwo = new Meteor.Collection("two")

Meteor.subscribe("items")

_.extend( Template.items,
items: ->
not_hidden = CollectionOne.find().fetch()
return CollectionTwo.find( _id: {'$in':( t.my_id for t in not_hidden )} )
)

任何想法可能是适当的解决方案?

最佳答案

react 性在服务器上的 Meteor.publish 中不起作用。当 CollectionOne 的内容发生变化时,Meteor 不会重新计算 CollectionTwo.find 查询。

要实现您想要的,请手动管理发布,而不仅仅是返回光标。您需要在发布函数中使用 observe 来观察 CollectionOne 的变化,然后手动调用 this.set this.unset 将更改推送到客户端。 publish documentation 中有一个这种技术的例子。 .该示例仅查看一个集合,但您可以将这个想法扩展到一组嵌套的观察。

我们将致力于糖,以使这种模式更易于实现。

关于meteor - 查询被另一个查询过滤时的 react 更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10524482/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com