JavaScript es6从另一个类调用静态函数

标签 javascript parse-platform ecmascript-6 static-methods alt.js

这是具有静态函数的类

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",

最佳答案

已编辑(因为您编辑了问题):

在您要导入的第二个文件中

从“./BoardActions”导入 BoardActions;

这是从“./BoardActions”导入默认值。

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

导出默认 alt.createActions(BoardActions);

关于JavaScript es6从另一个类调用静态函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36035591/

相关文章:

javascript - 如何在 jsdoc 函数参数中指定 Date 对象?

javascript - Sass、Compass 和 JavaScript

javascript - 纯 JS 自动幻灯片

android - 应用程序在设备启动时打开崩溃对话框

javascript - ParseFile javascript - 保存为字节

javascript - Babel 在箭头函数上抛出语法错误

javascript - Socket.io 不理解用户名

javascript - 书签 LMS、Moodle SCORM

ios - 解析iOS SDK:如何在创建PFObject时复制objectId

javascript - 如何使用 Redux 修改你在 reducer 中声明的子对象