如何更改减速器初始状态对象中的特定值

时间:2021-07-15 14:20:12

标签: reactjs redux react-redux

我的减速器:

初始状态是一个包含一些字符串的对象。我需要单独更新一个密钥。

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

行动:

export function updatePersonDetails(data) {
  return function (dispatch) {
        dispatch({
          type: C.UPDATE_PERSON_DETAILS,
          payload: data,
        });
  };
}

如何从组件中单独更改 personName?

1 个答案:

答案 0 :(得分:1)

也传播您的 updatePersonDetails 对象:

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

操作:

export function updatePersonDetails(data) {
  return function (dispatch) {
        dispatch({
          type: C.UPDATE_PERSON_DETAILS,
          payload: {...data, personName: objValue.name},
        });
  };
}