以下代码显示在更新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 };
答案 0 :(得分:0)
根据ES6规范,Object.assign
(https://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”。 它会起作用。