mongodb 如何确保Meteor发布对参数做出React

2cmtqfgy  于 2023-08-04  发布在  Go
关注(0)|答案(1)|浏览(75)

为什么users发布在其entities参数更改时不发布新数据?
客户代码

const subReady = useTracker(() => {
  return Meteor.subscribe('users', selectedEntities).ready();
}, [selectedEntities]);

字符串
服务器代码

Meteor.publish('users', function (entities) {
  check(entities, Match.Maybe(Array));
  const entityUsers = Entities.find(
    {groupName: {$in: entities}},
    {fields: {userIds: 1}},
  )
    .fetch()
    .map(a => a.userIds);
  const userIds = [].concat(...entityUsers);
  console.log(`userIds:`, userIds);
  return Users.find(
    {_id: {$in: userIds}},
    {
      fields: {username: 1, profile: 1, logins: 1, isSNR: 1},
    },
  );
});


由于客户端在useTracker中订阅,因此当依赖关系发生变化时,客户端将重新订阅。使用Meteor开发工具,我看到了预期的重新订阅,但发布仅在初始订阅期间运行。

mzaanser

mzaanser1#

通常情况下,当客户端重新订阅时,发布会重新运行,但如果参数值与上一次调用中的参数值相同,Meteor不会重新运行发布。您可以添加更多的日志useTracker回调来检查它是否使用不同的参数值重新运行。

相关问题