Étendre les opérateurs à Redux

J'essaie d'utiliser l'opérateur de propagation dans mes réducteurs, mais il revient avec une erreur de syntaxe non valide. Ma construction prend en charge l'utilisation de l'opérateur de propagation car je n'obtiens l'erreur que dans mes réducteurs.

Auth_types.js

export const AUTH_USER = 'AUTH_USER' export const UNAUTH_USER = 'UNAUTH_USER' 

Auth_actions.js

 import { AUTH_USER, UNAUTH_USER } from './auth_types' export function signinUser({ email, password }) { return function(dispatch) { axios.post(`${ROOT_URL}/signin`, { email, password }) .then(response => { dispatch({ type: AUTH_USER }) browserHistory.push('/feature') }) } } 

Reducer.js

 import { AUTH_USER, UNAUTH_USER } from '../actions/auth_types' export default function(state = {}, action) { switch(action.type) { case AUTH_USER: return { ...state, authenticated: true } case UNAUTH_USER: return { ...state, authenticated: false } } return state } 

De la documentation :

Étant donné que la syntaxe de propagation de l'objet est toujours une proposition de Phase 2 pour ECMAScript, vous devrez utiliser un transpiler tel que Babel pour l'utiliser en production. Vous pouvez utiliser votre préréglage es2015 existant, installer babel-plugin-transform-object-rest-spread et l'ajouter individuellement au réseau de plugins dans votre .babelrc .

 { "presets": ["es2015"], "plugins": ["transform-object-rest-spread"] } 

Notez qu'il s'agit encore d'une proposition de fonctionnalité de langue expérimentale afin qu'elle puisse changer à l'avenir.

Si vous utilisez le webpack, vous pouvez résoudre ce problème en activant le préréglage de l' étape 2 .

Première installation du paquet npm:

 npm install --save babel-preset-stage-2 

Ensuite, ajoutez l'étape 2 au tableau de préréglages dans webpack.config.js :

 module: { loaders: [ { test: /\.jsx?$/, exclude: /node_modules/, loader: 'babel-loader', query: { presets:[ 'es2015', 'react', 'stage-2' ] } } ] }