在 ES6 模块中导入有问题:未导出属性

长传

我目前正在使用 redux,并且正在将具有类型属性的对象导出到我的 reducer 文件中。

我的 types.js 文件:

const Types = {LOG_IN:'LOG_IN',REGISTER:'REGISTER'};
export default Types;

我的 reducer.js 文件:

import {LOG_IN,REGISTER} from './types';
//CODE HERE

但是,当我编译时,CRA 给我一个错误:

Attempted import error: 'LOG_IN' is not exported from './types'.

奇怪的是,这段代码有效:

import Types from './types';
const {LOG_IN,REGISTER} = Types;

为什么我的代码结构不适用于那种导入形式,而 React 和 Redux 的代码却可以?先感谢您。

仅有的

您需要为每个常量显式定义一个命名导出以使其工作。

export const LOG_IN = 'LOG_IN';
export const REGISTER = 'REGISTER';

导入命名导出与解构默认导出不同,当您执行此操作时会发生这种情况:

import Types from './types';
const {LOG_IN,REGISTER} = Types;

您可以在此处阅读更多相关信息您在野外找到的其他代码可能看起来像您描述的那样工作,因为它实际上是这样定义其导出的:

module.exports = {
  LOG_IN: 'LOG_IN'
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章