[英]update property value of array of object using es6
function posts(state = [], action) {
switch(action.type){
case 'INCREMENT_LIKES':
const i = action.index
return [
...state.slice(0,i),
{...state[i], likes: state[i].likes + 1},
...state.slice(i + 1),
]
default:
return state
}
}
export default posts
上面的代码可以用,但是对我来说,它不是那么优雅,看起来超级混乱,也不是那么灵活。 如果我的身份证号是数字,我再也不能slice(i + 1)
怎么办。 我可以使用带有对象分配的地图来解决它,但我正在寻找更多替代方法来update property value of array of object using es6
一种替代方法是利用npm包不可变性帮助程序中的update
,即使在深度嵌套状态和
import update from `immutability-helper`
function posts(state = [], action) {
switch(action.type){
case 'INCREMENT_LIKES':
const i = action.index
return update(state, {
[i]: {
likes: {
$set: state[i].likes + 1
}
}
})
default:
return state
}
}
export default posts
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.