我正在尝试在我的Reducer中使用spread属性,但它返回时语法错误无效。我的构建支持使用扩展运算符,因为我只在我的Redurs中得到错误。
I am trying to use the spread properties in my reducers, but it is coming back with an invalid syntax error. My build supports the use of the spread operator as I only get the error in my reducers.
auth_types.js
auth_types.js
export const AUTH_USER = 'AUTH_USER' export const UNAUTH_USER = 'UNAUTH_USER'auth_actions.js
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
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 }推荐答案
来自文档:
由于对象传播语法仍然是ECMAScript的第2阶段提议,您需要使用像Babel这样的转换程序在生产中使用它。您可以使用现有的es2015预设,安装 babel-plugin-transform-object-rest-spread 并将其单独添加到 .babelrc 中的插件数组。
Since the object spread syntax is still a Stage 2 proposal for ECMAScript you’ll need to use a transpiler such as Babel to use it in production. You can use your existing es2015 preset, install babel-plugin-transform-object-rest-spread and add it individually to the plugins array in your .babelrc.
{ "presets": ["es2015"], "plugins": ["transform-object-rest-spread"] }
请注意,这仍然是一个实验性语言功能提案,所以它可能会在未来。
Note that this is still an experimental language feature proposal so it may change in the future.
更多推荐
在Redux中传播属性
发布评论