我正在使用
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
吗?
答案 0 :(得分:0)
是的,您确实需要使用autorun
。原因是流路由器参数不是一个反应数据源,即它们的值的变化不会触发代码的重新评估。