Javascript 未定义导入类中的方法
我正在尝试将第三方API集成到我的meteor.js应用程序中。 所以这个想法是,当在/blog路由上时,应用程序应该调用外部类的方法 router.js: blog.js: 为了启用ES2015,我正在使用最新的meteor 1.4.2.3和以下npm包:Javascript 未定义导入类中的方法,javascript,meteor,ecmascript-6,Javascript,Meteor,Ecmascript 6,我正在尝试将第三方API集成到我的meteor.js应用程序中。 所以这个想法是,当在/blog路由上时,应用程序应该调用外部类的方法 router.js: blog.js: 为了启用ES2015,我正在使用最新的meteor 1.4.2.3和以下npm包: "babel-cli": "^6.18.0", "babel-core": "^6.18.2", "babel-loader": "^6.2.8", "babel-preset-es2015": "^6.18.0", "babel-runt
"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的内容?我想您应该尝试导入classnot类实例。因此,您不能调用方法 将您的blog.js更改为:
class Blog {
constructor(){
...
}
init() {
console.log('init blog api');
...
}
}
export default new Blog();
我想您应该尝试导入类而不是类实例。因此,您不能调用方法 将您的blog.js更改为:
class Blog {
constructor(){
...
}
init() {
console.log('init blog api');
...
}
}
export default new Blog();
Yan Mayatskiy和Gothdo在他们的评论中回答了这个问题,谢谢。 如果有人在寻找正确答案: 我需要实例化我导入的类,如下所示:
import Blog from 'blog';
const blog = new Blog();
blog.init();
Yan Mayatskiy和Gothdo在他们的评论中回答了这个问题,谢谢。 如果有人在寻找正确答案: 我需要实例化我导入的类,如下所示:
import Blog from 'blog';
const blog = new Blog();
blog.init();
如果您想要导出一个类,您需要在以后实例化它,除非它是一个带有一些静态方法的类
export class Logger {
static info(message) {
console.log(`Info: ${message}`);
}
static error(message) {
console.log(`Error: ${message}`);
}
}
export default Logger;
让我们假设这是一个只有静态方法的助手类
export class Logger {
static info(message) {
console.log(`Info: ${message}`);
}
static error(message) {
console.log(`Error: ${message}`);
}
}
export default Logger;
因此,您可以直接导入并使用它
import Logger from "../../../../utils/Logger";
...
Logger.Info("...");
如果您想要导出一个类,您需要在以后实例化它,除非它是一个带有一些静态方法的类
export class Logger {
static info(message) {
console.log(`Info: ${message}`);
}
static error(message) {
console.log(`Error: ${message}`);
}
}
export default Logger;
让我们假设这是一个只有静态方法的助手类
export class Logger {
static info(message) {
console.log(`Info: ${message}`);
}
static error(message) {
console.log(`Error: ${message}`);
}
}
export default Logger;
因此,您可以直接导入并使用它
import Logger from "../../../../utils/Logger";
...
Logger.Info("...");
您需要执行var blog=newblog;然后您将有init-blog.init,您正在导出一个类,而不是它的实例。您应该从“../imports/scripts/Blog”导入Blog;然后const blog=new blog;。您需要执行var blog=newblog;然后您将有init-blog.init,您正在导出一个类,而不是它的实例。您应该从“../imports/scripts/Blog”导入Blog;然后const blog=new blog;。