我目前正在使用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的代码一起使用那种形式的导入?预先谢谢你。
答案 0 :(得分:1)
我认为是因为您导出了 Types ,例如,如果tou可以使用 LOG_IN ,则您需要访问 Types.LOG_IN ,并且该代码 const {LOG_IN,REGISTER} =类型; 起作用是因为您正在使用解构
import Types from './types';
是正确的
然后尝试使用Types.REGISTER
答案 1 :(得分:1)
您需要为每个常量明确定义一个命名导出,以使其正常工作。
export const LOG_IN = 'LOG_IN';
export const REGISTER = 'REGISTER';
导入命名导出与破坏默认导出不同,这是在执行此操作时发生的事情:
import Types from './types';
const {LOG_IN,REGISTER} = Types;
您可以read more on this here。您在野外找到的其他代码可能看起来像您描述的那样工作,因为它实际上是这样定义出口的:
module.exports = {
LOG_IN: 'LOG_IN'
}