未捕获的 SyntaxError:意外的令牌导出 (Redux)
Posted
技术标签:
【中文标题】未捕获的 SyntaxError:意外的令牌导出 (Redux)【英文标题】:Uncaught SyntaxError: Unexpected token export (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 问题,但不知道如何解决此错误。
【问题讨论】:
你好像忘记了function
关键字
【参考方案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) ...
【讨论】:
以上是关于未捕获的 SyntaxError:意外的令牌导出 (Redux)的主要内容,如果未能解决你的问题,请参考以下文章
Javascript:未捕获的 SyntaxError:意外的令牌 <
JQuery:未捕获的 SyntaxError:无效或意外的令牌