首页 > 解决方案 > 如何在redux中更新对象中的特定值

问题描述

我的减速机:

   function updatePersonDetailsReducer (state = {
        updatePersonDetails: {
            name: "John",
            id: "3ery4",
            address: "somewhere on earth"
        }
    }, action) {
        switch (action.type) {
            case C.UPDATE_PERSON_DETAILS: {
                return {
                    ...state
                    ,updatePersonDetails :action.payload
                }
            }
            default : {}
        }
        return state
    }

我在我的组件中这样调用,

this.props.dispatch(updatePersonDetails({name:Variant.objValue.name,id:Variant.objValue.Id}))

但这似乎创建了一个新数组,而不是updatePersonDetails在 reducer 中覆盖当前数组 () 中的值。

标签: reactjsreduxreact-redux

解决方案


你可以传播你的对象并这样做。

 case C.UPDATE_PERSON_DETAILS: {
                return {
                    ...state,
                    updatePersonDetails : 
                    {...state.updatePersonDetails,...action.payload}
                }
            }

这会将您的旧密钥保留在那里,并且只会更新新添加的密钥。


推荐阅读