es2015 dustruct里面的函数参数

时间:2017-06-01 03:28:39

标签: ecmascript-6

有人可以帮我查看我的代码吗?我不知道语法错误在哪里 我的eslint(原子编辑)说:

  

解析错误:意外的令牌,预期:(致命)

以下是代码:

const initialUserState = {}

const userReducer = (state = initialUserState, action: { type }) => {
  console.log(type)

  return state
}

我使用babel-preset-env,其中包含预设的es2015,然后包含transform-es2015-destructuring。

而且,这是我的babelrc配置:

{
  "presets": [
    ["env", {
      "targets": {
        "browsers": ["last 2 versions", "safari >= 7"],
        "uglify": true
      },
      "modules": false
    }],
    "react"
  ],
  "plugins": [
    "transform-object-rest-spread",
    "react-hot-loader/babel"
  ]
}

非常感谢。

2 个答案:

答案 0 :(得分:0)

您可能正在寻找

function userReducer(state = initialUserState, { action: type }) {
//                                             ^

,它接受第二个参数的action属性,并在函数范围中将其作为变量type引入。你只是放错了支架。

答案 1 :(得分:0)

感谢Bergi和Felix回答我的问题和有用的想法。

经过一些谷歌搜索和尝试后,我发现这段代码正常工作。

const userReducer2 = (
  state = initialUserState,
  { type: { name, sex } = { name: 'Peter', sex: 'male' } }
) => {
  console.log(name, sex) // eslint-disable-line no-console

  return state
}

我要做的是定义变量名并同时给它们默认值。

虽然我仍然不知道如何给第二个参数action命名,但这已经足够了。