Метеор паб саб же коллекция другой проекции - PullRequest
0 голосов
/ 10 сентября 2018

Я недавно работал в проекте с 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

if i console.log Users.find () Показывает проекцию предыдущих публикаций, а не текущую проекцию, если я обновляю страницу, она показывает правильноеодин.Ошибка появляется только при переходе от одного маршрута к другому.

спасибо

...