2017-01-31 66 views
2

以下代碼在更新React.js中的狀態時顯示語法錯誤。更新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

'action.payload.data'的確切負載是什麼? – elboletaire

回答

0

利用Object.assign()

export default (state=INITIAL_STATE,action) => { 
    switch(action.type){ 
    case FETCH_POSTS: 
    return Object.assign({}, state, {all: action.payload.data}); 
    default: 
    return state; 
    } 
} 
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: './' 
    } 
}; 
0

我遇到了同樣的問題。 請記得在你的npm包中安裝「babel-preset-stage-1」,並在設置babel預設時將其用作「stage-1」。 它會工作。