【问题标题】:Uncaught SyntaxError: Unexpected token export (Redux)未捕获的 SyntaxError:意外的令牌导出 (Redux)
【发布时间】:2017-08-11 02:17:41
【问题描述】:
我正在尝试创建一个减速器来响应下面的代码,但我在控制台中不断收到此错误:
Uncaught SyntaxError: Unexpected token export
const INIT_STATE = [];
export default (state = INIT_STATE, action) {
switch(action.type) {
default: state
}
}
我仍在尝试解决 redux 问题,但不知道如何解决此错误。
【问题讨论】:
标签:
javascript
reactjs
redux
react-redux
【解决方案1】:
当您在同一个文件上有多个导出并且您将默认导出添加到其中一个时会发生这种情况,因此解决方案是使用export default 导出一个模块,或者如果您想导出多个,则只使用export对象,函数...等在同一个文件中
另外要提的是你调用函数的方式,es6引入了箭头函数
你应该这样做 (arg1 , arg2 ) => {.....} 而不是这个(arg1 , arg2 ){ .... }
所以你的情况
const INIT_STATE = [];
export (state = INIT_STATE, action) => {
switch(action.type) {
default: state
}
}
【解决方案2】:
我的猜测是您尝试运行该代码而不先编译它。大多数环境中仍然不支持 ES6 导入/导出语法 - 必须先将 ES6 模块编译为另一种格式,通常使用 Babel。
【解决方案3】:
这是不正确的语法。您需要在函数签名之前添加 function 关键字,或者将其定义为 Sam 建议的箭头函数。
即
export default function (state = INIT_STATE, action) {...} 或 export default (state = INIT_STATE, action) => {...},而不是 export default (state = INIT_STATE, action) {...}