有人可以帮我查看我的代码吗?我不知道语法错误在哪里 我的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"
]
}
非常感谢。
答案 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
命名,但这已经足够了。