2016-03-16 26 views
0

这里是静态函数的JavaScript ES6调用静态函数从另一个类

import alt from '../alt'; 
import Parse from 'parse'; 
import { ElementTypes } from '../constants/ElementTypes'; 

class BoardActions { 

    static getDefaultElement(x, y) { 
     var Element = Parse.Object.extend("Element"); 
     var element = new Element(); 
     element.set("x", x); 
     element.set("y", y); 
     return element; 
    } 
} 

export default alt.createActions(BoardActions); 

类这是谁调用静态函数const startElement = BoardActions.getDefaultElement(0, 3);

import alt from '../alt'; 
import Parse from 'parse'; 
import { ElementTypes } from '../constants/ElementTypes'; 
import BoardActions from './BoardActions'; 

class ProjectActions { 

    createNewProject(name) { 
     return (dispatch) => { 
      dispatch(); 
      const Project = Parse.Object.extend("Project"); 
      const project = new Project(); 
      let projectObject = null; 
      project.set('name', name); 
      project.save().then((object) => { 
       projectObject = object; 
       const startElement = BoardActions.getDefaultElement(0, 3); 
       startElement.set('type', ElementTypes.StartType); 
       startElement.set('root', true); 
       startElement.set('projectId', object.id); 
       return startElement.save(); 
      }).then((object) => { 
       this.newProjectCreated(projectObject); 
      }, (error) => { 
       this.parseError(error); 
      }); 
     } 
    } 

} 

export default alt.createActions(ProjectActions); 

我得到这个错误类:

ProjectActions.js:69 Uncaught TypeError: _BoardActions2.default.getDefaultElement is not a function 

怎么了?

编辑: 我使用babel作为编译器。

"babel-core": "^6.5.1", 
"babel-loader": "^6.2.2", 
"babel-preset-es2015": "^6.5.0", 
"babel-preset-react": "^6.5.0", 
"babel-preset-react-hmre": "^1.1.0", 
"babel-preset-survivejs-kanban": "^0.3.3", 
+0

在您的代码中找不到任何问题。你正在使用哪个译码器? – Darshan

+0

我使用babel作为编译器 – zeiteisen

+0

这些类在不同的文件中吗?如果是这样,你应该显示你正在输出/输入的内容。 – JMM

回答

1

编辑(因为你修改你的问题):

在第二个文件要导入

import BoardActions from './BoardActions';

这是进口从” ./BoardActions'默认。

看看第一个文件是导出函数的结果而不是类本身。

export default alt.createActions(BoardActions);

+1

他的模块已经有一个默认导出。 (无可否认,它只是在编辑中添加) – Bergi

+0

谢谢。相应地编辑我的答案 –

+0

谢谢。导出默认的alt.createActions(BoardActions);使所有功能基本静态。我刚从功能中删除静态,它的工作。 – zeiteisen

相关问题