流星酒吧子同一收藏集的不同投影

时间:2018-09-10 12:14:26

标签: node.js mongodb reactjs meteor

我最近一直在与Meteor和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() 如果刷新页面显示正确的页面,它将显示以前出版物的投影,而不是当前的投影。只有当我从一条路线导航到另一条路线时,错误才会出现。

谢谢

0 个答案:

没有答案