【问题标题】:Flow Router param not changing inside hook and subscription流路由器参数在钩子和订阅中没有改变
【发布时间】:2015-11-08 19:41:52
【问题描述】:

我正在使用

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

【问题讨论】:

    标签: javascript node.js meteor flow-router meteor-tracker


    【解决方案1】:

    是的,您确实需要使用autorun。原因是流路由器参数不是响应式数据源,即其值的更改不会触发依赖于它的代码的重新评估。

    【讨论】:

    • 自动运行中应该有多少代码?当我使用通过帮助程序填充模板时,流路由器参数是反应性的,所以我不明白为什么它们在这种情况下不是反应性的。
    猜你喜欢
    • 1970-01-01
    • 2018-07-27
    • 2023-03-31
    • 1970-01-01
    • 2017-04-03
    • 2015-09-30
    • 2015-08-27
    • 1970-01-01
    • 2018-04-28
    相关资源
    最近更新 更多