未捕获的TypeError:无法读取属性'(MyReactiveVarName'为null

时间:2016-08-10 10:42:12

标签: meteor

你能告诉我为什么我不能在超时功能中使用Reactive Var吗?我尝试在1秒超时后更改Reactive Var,但这是不可能的,尽管我一直使用相同的模板:

  Template.instance().taskNumRV.set(0); => works well
  setTimeout(function() { 
  Template.instance().taskNumRV.set(2); => Uncaught TypeError: Cannot read property 'taskNumRV' of null
  }, 1000);

谢谢!

1 个答案:

答案 0 :(得分:0)

调用回调函数时,Template.instance()不再引用正确的模板实例。要解决此问题,请将Template.instance()分配给局部变量,然后在setTimeout回调中使用该变量。例如:

const instance = Template.instance();
setTimeout(function () { 
  instance.taskNumRV.set(2);
}, 1000);