React + Redux + Babel(在......状态意外令牌中的SyntaxError)

问题描述 投票:0回答:2

我试着重复这个例子:https://github.com/reduxjs/redux/tree/master/examples/async/src

但我使用最后版本的ReactReduxBabel(例如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"]
}

谢谢大家的建议!

javascript reactjs react-redux syntax-error babel
2个回答
1
投票

预设问题

第一

npm install --save-dev babel-preset-stage-3

在你的.babelrc

{
    "presets": ["env", "stage-3", "react"]
}

-1
投票

你将要连接对象,所以你应该遵循ES6语法。

你目前的语法错了。

return {
    ...state,
    didInvalidate: true
  }

应该是这样的

return {
    ...state,
    ...{ didInvalidate: true }
  }

在所有情况下更换它,然后再试一次。

© www.soinside.com 2019 - 2024. All rights reserved.