我尝试重复该示例: https://github.com/reduxjs/redux/tree/master/examples/async/src
但是我使用的是React
,Redux
和Babel
的最新版本(例如,React v15.5)。在此示例中,我没有进行任何更改,然后尝试使用webpack进行构建,并在此处获取SyntaxError:
22 | case INVALIDATE_SUBREDDIT:
23 | return {
> 24 | ...state,
| ^
25 | didInvalidate: true
26 | }
在./reducers/index.js
const posts = (state = {
isFetching: false,
didInvalidate: false,
items: []
}, action) => {
switch (action.type) {
case INVALIDATE_SUBREDDIT:
return {
...state,
didInvalidate: true
}
case REQUEST_POSTS:
return {
...state,
isFetching: true,
didInvalidate: false
}
case RECEIVE_POSTS:
return {
...state,
isFetching: false,
didInvalidate: false,
items: action.posts,
lastUpdated: action.receivedAt
}
default:
return state
}
}
这是怎么了?
更新:
在 AdityaParab 回答后,我做出了这样的回答:
npm install --save-dev babel-preset-stage-3
在您的.babelrc中
{
"presets": ["env", "stage-3", "react"]
}
上一个错误消失了,但我在./containers/App.js
中又做了一个:
19 | }
20 |
> 21 | handleChange = nextSubreddit => {
| ^
22 | this.props.dispatch(selectSubreddit(nextSubreddit))
23 | }
24 |
更新2:
很好用。
{
"presets": ["env", "stage-3", "react"],
"plugins": ["transform-object-rest-spread", "transform-decorators-legacy", "transform-class-properties"]
}
谢谢大家的建议!
答案 0 :(得分:1)
预设问题
第一
npm install --save-dev babel-preset-stage-3
在您的.babelrc
{
"presets": ["env", "stage-3", "react"]
}
答案 1 :(得分:-1)
您将要连接对象,因此应遵循ES6语法。
您当前的语法错误。
return {
...state,
didInvalidate: true
}
应该是这样
return {
...state,
...{ didInvalidate: true }
}
无论如何都要更换它,然后再试一次。