【发布时间】:2018-07-01 07:07:57
【问题描述】:
我有以下函数,它接受一个动作类型并返回一个新状态,但是由于我不喜欢“切片”方法,我想我会改用 concat 方法。注释掉的代码是用新更新的对象更新状态的原始“切片”解决方案。但是,它不起作用,我什至没有收到错误。
我的方法是将现有状态与 n 加入
function posts(state = [], action) {
switch(action.type) {
case 'INCREMENT_LIKES':
const i = action.index;
//console.log(newState);
// let newState = [
// // ...state.slice(0, i),
// // {...state[i], likes: state[i].likes + 1},
// // ...state.slice(i + 1),
// ]
// console.log(newState);
return state.concat([{...state[i], likes: state.likes +1}]);
default:
return state;
}
}
export default posts;
【问题讨论】:
-
尝试通过 redux 开发者工具调试你的 store,你会发现这两个 sn-ps 不会产生相同的结果
-
至少
likes: state[i].likes +1
标签: javascript reactjs ecmascript-6 redux