【发布时间】:2017-06-11 06:17:27
【问题描述】:
我正在学习 Redux、React 和 ES6。我已经用 JS 开发了,但是 ES6 的这个新世界让我惊讶的是有很多新东西,比如“=>”来声明箭头函数和其他。然而,在这个新的 Redux 研究中,我在我的代码中间遇到了...。
下面我有一个例子:
import { combineReducers, createStore } from 'redux'
const userReducer = (state={}, action) => {
switch(action.type) {
case 'CHANGE_NAME':
state = {...state, name: action.payload};
break;
case 'CHANGE_AGE':
state = {...state, age: action.payload};
break;
}
return state;
};
const tweetsReducer = (state=[], action) => {
return state;
};
const reducers = combineReducers ({
user: userReducer,
tweetsReducer: tweetsReducer,
});
const store = createStore(reducers);
store.subscribe(() =>
console.log('The chage was: ', store.getState())
);
store.dispatch({type: 'CHANGE_NAME', payload: 'Will'})
store.dispatch({type: 'CHANGE_AGE', payload: 21});
如果我替换state = {...state, name: action.payload};
和state = {...state, age: action.payload};
与state.name = action.payload;
和state.age = action.payload;
它可以工作,但是年龄被一起插入对象名称中,并且在第一种情况下,名称被插入并且在年龄被插入之后。
为什么会这样?我如何在未来的代码中使用...?它只是与状态有关吗?
【问题讨论】:
-
谢谢!问的时候没找到所以,它真的是重复的。不过,感谢您的回答。
-
@hackerrdave:
...is not an operator. -
@FelixKling 感谢您的链接!这有助于清除它
标签: javascript ecmascript-6 redux