在React.js中更新状态时出现语法错误

时间:2017-01-31 05:21:12

标签: javascript reactjs

以下代码显示在更新React.js中的状态时出现语法错误。

import { FETCH_POSTS } from '../actions/index';
const INITIAL_STATE = { all:[], post: null};

export default (state=INITIAL_STATE,action) => {
  switch(action.type){
    case FETCH_POSTS:
    return { ...state, all: action.payload.data };
    default:
    return state;
  }
}

它在return { ...state,all:action.payload.data };

上显示错误

4 个答案:

答案 0 :(得分:0)

根据ES6规范,Object.assignhttps://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Spread_operator)。您可以使用Object.assign()或在浏览器中考虑https://github.com/sebmarkbage/ecmascript-rest-spread之类的内容。

答案 1 :(得分:0)

利用export default (state=INITIAL_STATE,action) => { switch(action.type){ case FETCH_POSTS: return Object.assign({}, state, {all: action.payload.data}); default: return state; } } 更新并返回状态

<dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency> 
<dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency> 

答案 2 :(得分:0)

在完成本课程后,当我开始自己的项目时,我遇到了与您的相同代码相同的问题https://www.udemy.com/react-redux

我发现我忘了安装预置-1 https://www.npmjs.com/package/webpack-preset-babel-stage-1 并将其包含在webpack.config.js

module.exports = {
  entry: [
    './src/index.js'
  ],
  output: {
    path: __dirname,
    publicPath: '/',
    filename: 'bundle.js'
  },
  module: {
    loaders: [{
      exclude: /node_modules/,
      loader: 'babel',
      query: {
        presets: ['react', 'es2015', 'stage-1']
      }
    }]
  },
  resolve: {
    extensions: ['', '.js', '.jsx']
  },
  devServer: {
    historyApiFallback: true,
    contentBase: './'
  }
};

答案 3 :(得分:0)

好吧,我遇到了同样的问题。 请记住在你的npm包中安装“babel-preset-stage-1”,并在为babel设置预设时将其用作“stage-1”。 它会起作用。