2016-03-16 52 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

相關問題