【发布时间】:2019-05-23 04:53:04
【问题描述】:
我在一个 ReactJS 和 Meteor 项目中工作,我发现了一个奇怪的行为,我将在这里描述:
有一个Tracker.autorun 块,里面有一个Meteor.subscribe 调用。到目前为止,一切都很好。在服务器端,有一个匹配的Meteor.publish,它声明了一个回调。
据我了解,Meteor.publish 回调应该为收到的每个订阅触发一次,但不知何故,这个回调会为单个订阅触发 3~4 次。
在我上次的测试中,Tracker.autorun 块执行了 4 次,订阅只执行了 1 次,回调触发了 4 次。
Meteor.subscribe 只运行一次,即使是跟踪器也会运行多次。它怎么会导致回调多次触发?
这有意义吗? 你知道什么可以解释这种行为吗?
如果您需要任何其他信息,请告诉我。 提前致谢
Meteor.publish('current-user', function currentUser(credentials) {
return Users.find();
});
Tracker.autorun((c) => {
if (!currentUserHandler) {
currentUserHandler = Meteor.subscribe('current-user', this.credentials);
}
});
【问题讨论】:
-
这是完整的代码吗?
this.credentials是像ReactiveVar或ReactiveDict这样的反应式数据源吗? -
不,实际上这不是完整的代码。
this.credentials是一个包含会话存储中的一些值的对象。
标签: javascript reactjs meteor