导入常量是undefined react redux

时间:2018-01-16 17:17:26

标签: es6-modules

我有这样的事情:

//ActionTypes.js
export const a = 'a';

//Reducer.js
import a from './ActionTypes';
//export reducer function that uses string a

//Actions.js
import a from './ActionTypes';
return {type: a, data: 'something'}

但是在reducer.js和actions.js中,'a'是未定义的。据我所知,没有循环依赖性。请帮忙

1 个答案:

答案 0 :(得分:0)

我会用大括号导出a,如下所示:

import { a } from './ActionTypes'

a是一个命名导出,因为您在声明它时会给它一个变量名:

export const a = 'a';

导入命名导出的语法需要使用{}。 您使用的语法适用于默认导出。请参阅下面的示例:

export default function a() {
  return 'a';
};

默认导出不适用于常量,因为您需要声明变量的名称。您不能将varletconstexport default一起使用。

有关详细信息,请参阅MDN docs for export

另一方面,在命名常量时使用ALLCAPS是惯例。