Параметр Flow Router не изменяется внутри хука и подписки

Я использую

Template.taskList.onCreated( () => {
  var projectId = FlowRouter.getParam( 'projectId' );
  var postHooks = {
    before: {
      insert: function ( doc ) {
        doc.projectId = projectId;
        return doc;
      }
    }
  };

  Template.instance().subscribe( 'tasks', projectId );
  AutoForm.addHooks( 'addTask', postHooks );
} );

добавить projectId на все созданные задачи и подписаться на задачи с указанными projectId,

Тем не менее, когда я меняю projectId с FlowRouter.setParam( 'projectId' ... ), похоже на то projectId не меняется в моем крючке и подписке.

Что я делаю неправильно? Должен ли я положить его внутрь Tracker.autorun() или что-то? Это потому, что я использую onCreated вместо onRendered?

1 ответ

Да, вам действительно нужно использовать autorun, Причина в том, что параметры потокового маршрутизатора не являются реактивным источником данных, т. Е. Изменение их значения не вызывает переоценку кода в зависимости от него.

Другие вопросы по тегам