Node.js Meteor pub sub相同集合不同投影

Node.js Meteor pub sub相同集合不同投影,node.js,mongodb,reactjs,meteor,Node.js,Mongodb,Reactjs,Meteor,我最近一直在与Meteor and React合作一个项目,我对Meteor的发布和订阅有一些问题 下面是示例代码: 这是我拥有的第一份出版物,当用户转到“设置/通知”页面时,我们可以看到通知设置 # Publish user notifications settings information import { Meteor } from 'meteor/meteor' import Users from '../../users.coffee' Meteor.publish

我最近一直在与Meteor and React合作一个项目,我对Meteor的发布和订阅有一些问题

下面是示例代码:

这是我拥有的第一份出版物,当用户转到“设置/通知”页面时,我们可以看到通知设置

# Publish user notifications settings information 

import { Meteor } from 'meteor/meteor'
import Users      from '../../users.coffee'

Meteor.publish 'user.notifications.settings', ->

If not @userId then throw new Meteor.Error 403, 'You must be logged in.'

fields = {}

fields["settings.notifications"] = on


Users.find( { _id : @userId } , { fields } )
这是用户进入页面
settings/api
时的第二次发布,它显示了api设置

# Publish user API-keys

EXCHANGES = require '../../../../startup/both/exchanges'

import { Meteor } from 'meteor/meteor'
import Users      from '../../users.coffee'

Meteor.publish 'user.api_keys', ( user_id ) ->

# return ready if no use_id is passed
return @ready() if not user_id

fields = {}

for exchange in EXCHANGES

  if user_id is @userId
    fields["settings.exchanges.#{exchange}"] = on
  else
    fields["settings.exchanges.#{exchange}.valid"] = on


Users.find( { _id : user_id }, { fields } )
这里的问题是当用户从一个页面导航到另一个页面时,Meteor没有更新订阅

在我的组件上,我有此订阅

Meteor.subscribe 'user.notifications.settings'
另一个呢

Meteor.subscribe 'user.api_keys', user_id
如果我使用console.log Users.find() 它显示以前出版物的投影,而不是当前投影如果我刷新页面,它将显示正确的投影。只有当我从一条路线导航到另一条路线时,错误才会出现


谢谢

您正在使用withTracker吗?是的,我正在使用withTracker