更新不可变对象数组,redux

时间:2018-09-07 08:37:25

标签: react-native redux

我收到错误消息“ Invariant Violation:试图获取超出范围索引NaN的帧”,这是由于归约器发送的分配错误或空数组导致的。 我正在尝试更新3个字段,即state.items [index] .status,state.items [index] .statusUpdatedOn和state.items [index] .statusUpdatedBy。

由于其嵌套,我正在尝试在我的reducer中进行如下更新。 代码似乎有问题,我无法找出:

case ActionTypes.UPDATE_ITEM_STATUS:
  var index = state.items.findIndex((item) => item.id === action.payload.id)
  return { ...state,
    items: {
      ...state.items,
      [index]:{
        ...state.items[index],
        status: action.payload.newStatus,
        statusUpdatedOn: action.payload.statusUpdatedOn,
        statusUpdatedBy: action.payload.statusUpdatedBy
      }
    },
    isLoading: false,
    errMess: null
  }
  break;

当我的状态对象包含元素时:

  items: [],
  errMess: '',
  isLoading: false,

请帮助我更正代码

0 个答案:

没有答案