Я недавно работал в проекте с 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 () Показывает проекцию предыдущих публикаций, а не текущую проекцию, если я обновляю страницу, она показывает правильноеодин.Ошибка появляется только при переходе от одного маршрута к другому.
спасибо