繁体   English   中英

使用es6更新对象数组的属性值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM