我有这样的事情:
//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'是未定义的。据我所知,没有循环依赖性。请帮忙
答案 0 :(得分:0)
我会用大括号导出a
,如下所示:
import { a } from './ActionTypes'
a
是一个命名导出,因为您在声明它时会给它一个变量名:
export const a = 'a';
导入命名导出的语法需要使用{}
。
您使用的语法适用于默认导出。请参阅下面的示例:
export default function a() {
return 'a';
};
默认导出不适用于常量,因为您需要声明变量的名称。您不能将var
,let
或const
与export default
一起使用。
有关详细信息,请参阅MDN docs for export
另一方面,在命名常量时使用ALLCAPS是惯例。