在ES2015中使用枚举

Sam*_*Sam 2 javascript enums ecmascript-6

如何在ES2015中使用枚举?我尝试了以下但是我遇到了错误:

为我的枚举创建了一个文件,即errorTypes.js

export const Types = {
   MISSING_DATA: 0,
   INVALID_DATA: 1
}
Run Code Online (Sandbox Code Playgroud)

然后我尝试将其导入我的React组件并按如下方式使用它:

import errorTypes from '../enums/errorTypes';

handleOnClick(event) {

   // Some logic here
   const newError = {type: errorTypes.INVALID_DATA, message: "Please type carefully!"};

}
Run Code Online (Sandbox Code Playgroud)

我得到的错误是

未捕获的TypeError:无法读取未定义的属性"INVALID_DATA"

Fel*_*ing 6

您没有正确导入或导出数据.您收到错误是因为您尝试从模块导入默认导出,但由于模块没有默认导出,因此errorTypes最终会出现错误undefined.

使用默认导出:

export default {
  MISSING_DATA: 0,
  INVALID_DATA: 1,
};
Run Code Online (Sandbox Code Playgroud)

或使用命名导入:

import {Types} from '...';
Run Code Online (Sandbox Code Playgroud)

详细了解importexport对MDN.