javascript - react 变量定义时未定义

标签 javascript meteor

我想获得一些帮助来调试已定义的 react 变量未定义的情况。

此代码将 react 变量附加到模板实例,并在 template.autorun() 中使用该变量。

Template.home.onCreated(function () {
  this.limit = new ReactiveVar(15);

  this.autorun(function () {
    this.subscribe('recent-topics', this.limit.get());
  });
});

当我第一次加载模板时,我希望模板使用参数15订阅recent-topics。但是,代码会抛出错误:

Uncaught TypeError: Cannot read property 'get' of undefined

有什么想法吗?

最佳答案

只是为了传播 ES6 的乐趣而给出的答案:

Template.home.onCreated(function () {
  this.limit = new ReactiveVar(15);

  this.autorun(() => {
    this.subscribe('recent-topics', this.limit.get());
  });
});

确保添加 grigio:babel 包,并且您的 Javascript 文件以 .es6.js.es6.jsx.

说明

在 ES6(又名 ECMAScript 6)中,有一个新的“粗箭头”语法,与 CoffeeScript 的实现非常相似。在 ES6 中,当你做这样的事情时:

someFunc = function () {
  anotherThing((var1, var2) => {
    this.thing = true;
  });
};

与执行此操作相同:

someFunc = function () {
  var self = this;

  anotherThing(function (var1, var2) {
    self.thing = true;
  });
};

关于javascript - react 变量定义时未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31576869/

相关文章:

javascript - 如何在元素上添加监听器以在元素发生任何更新时触发事件?

javascript - 我如何更好地重新排序我的 javascript 代码?

javascript - 如何将带有逗号千位分隔符的字符串解析为数字?

javascript - Meteor Iron 路由器钩子(Hook)被多次运行

javascript - 如何在 Meteor 中从服务器动态更新网页?

javascript - 有人见过 Javascript 中的 crypt(3) 实现吗?

javascript - 在循环中使用计数来更新变量javascript

javascript - 如何在 meteor 模板上使用 if 条件?

reactjs - 使用数据填充 React 表单(如果存在)

reactjs - 在客户端 React 组件中导入 npm 模块