javascript - 导入类中的方法未定义

标签 javascript meteor ecmascript-6

我正在尝试将第三方 API 集成到我的meteor.js 应用程序中。 所以我们的想法是,当在 /blog 路由上时,应用程序应该调用外部类的方法。

router.js:

import blog from '../imports/scripts/blog';
FlowRouter('/blog', {
  name: 'blog',
  action: function(params) {
    blog.init(); // here I get the error "init is not a function" (it's undefined)
  }
});

blog.js:

export default class Blog {
  constructor(){
    ...
  }

  init() {
    console.log('init blog api');
    ...
  }
}

我正在使用最新的 Meteor (1.4.2.3) 和以下 npm 包来启用 ES2015:

"babel-cli": "^6.18.0",
"babel-core": "^6.18.2",
"babel-loader": "^6.2.8",
"babel-preset-es2015": "^6.18.0",
"babel-runtime": "^6.18.0",
"meteor-node-stubs": "^0.2.4",
"webpack": "^1.13.3"

我的设置中是否缺少任何无法调用 blog.init() 的内容?

最佳答案

我认为你尝试导入类(而不是类实例)。因此您无法调用方法。

将 blog.js 更改为:

class Blog {
  constructor(){
    ...
  }

  init() {
    console.log('init blog api');
    ...
  }
}
export default new Blog();

关于javascript - 导入类中的方法未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40960826/

相关文章:

javascript - 如何更新嵌套用户集合

javascript - 余额仍停留在5000

javascript - 从查询字符串中提取数据,然后调用 API 和呈现组件的最佳位置是什么?

javascript - 破坏一个javascript对象以获取内部对象

javascript - 如何在json2html库中使用li标签

javascript - 带有 Onclick 事件的右键单击 Div 不会在上下文菜单中显示链接选项

javascript - 为什么 $ ("input").first() 在 Google 表单上不起作用?

JavaScript 图像叠加 Web 应用程序

javascript - 如何防止输入类型="number"取e

javascript - Meteor 无法从 json 文件加载设置