流路由器参数在挂钩和订阅内未更改

Flow Router param not changing inside hook and subscription

本文关键字:参数 路由器      更新时间:2023-09-26

我正在使用

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 );
} );

将CCD_ 1添加到所有创建的任务并订阅具有指定CCD_。

然而,当我用FlowRouter.setParam( 'projectId' ... )更改projectId时,我的挂钩和订阅中似乎没有更改projectId

我做错了什么?我必须把它放在Tracker.autorun()里面吗?是因为我用onCreated而不是onRendered吗?

是的,您确实需要使用autorun。原因是流路由器参数不是一个反应性数据源,即它们的值的变化不会触发对代码的重新评估。