未捕获的SyntaxError:意外的令牌导出(Redux)

时间:2017-03-19 22:02:34

标签: javascript reactjs redux react-redux

我正在尝试使用下面的代码创建一个reducer,但我一直在控制台中收到此错误:

  

未捕获的SyntaxError:意外的令牌导出

const INIT_STATE = [];

export default (state = INIT_STATE, action) {

  switch(action.type) {
    default: state
  }
}

我仍然试图绕过redux,并且不知道如何解决这个错误。

3 个答案:

答案 0 :(得分:1)

当您在同一个文件上有多个导出并且向其中一个导出默认导出时会发生这种情况,因此解决方案是使用export default导出一个模块,或者只导出export想要在同一个文件中导出多个对象,函数等...

另外要提到的是调用函数的方式,es6引入了箭头函数

而不是(arg1 , arg2 ){ .... },您应该执行此操作(arg1 , arg2 ) => {.....}

所以你的情况

   const INIT_STATE = [];

export (state = INIT_STATE, action) => {

switch(action.type) {
    default: state
  }
}

答案 1 :(得分:0)

我的猜测是你试图运行该代码而不先编译它。大多数环境中仍然不支持ES6导入/导出语法 - 首先必须将ES6模块编译为其他格式,通常使用Babel。

答案 2 :(得分:0)

这是不正确的语法。您需要在函数签名之前添加function关键字,或者将其定义为像Sam建议的箭头函数。

即。 export default function (state = INIT_STATE, action) {...}export default (state = INIT_STATE, action) => {...}代替export default (state = INIT_STATE, action) {...}