未捕获的 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)的主要内容,如果未能解决你的问题,请参考以下文章

未捕获的 SyntaxError:新行的无效或意外令牌

Javascript:未捕获的 SyntaxError:意外的令牌 <

JQuery:未捕获的 SyntaxError:无效或意外的令牌

未捕获的SyntaxError:无效或意外的令牌

将 Moment js 与 ASP 5/MVC6 一起使用时出现“未捕获的 SyntaxError:意外的令牌导入”

致命错误:未捕获的异常“Phalcon\Mvc\Model\Exception”与消息“语法错误,意外令牌>,