Reactjs React:上下文挂钩,将对象推入数组

Reactjs React:上下文挂钩,将对象推入数组,reactjs,typescript,Reactjs,Typescript,我遇到的错误是找不到名称“objectArray”。 interface StateInterface { objects: { objectArray: object[]; selected: object; }; } const InitialState: StateInterface = { objects: { objectArray: [], selected: {}, }, }; const Reducer = (state: S

我遇到的错误是
找不到名称“objectArray”。

interface StateInterface {
  objects: {
    objectArray: object[];
    selected: object;
  };
}

const InitialState: StateInterface = {
  objects: {
    objectArray: [],
    selected: {},
  },
};


const Reducer = (state: StateInterface, action: any) => {
  switch (action.type) {
    case 'SELECTED':
      return {
        ...state,
        objects: { ...state.objects, selected: action.value },
      };
    case 'ADD_OBJECT':
      return {
        ...state,
        objects: { ...state.objects, objectArray: objectArray.push(action.value )},
//                                                     ^---- Cannot find name 'objectArray'.ts(2304)
      };
    default:
      return state;
  }
};
我也试过了

objects: { ...state.objects, objectArray:  ...action.value )},

在该点上,只有状态对象在作用域中(作为reducer的参数提供),请尝试在出现错误的点处切换
objectArray
以查看
state.objectArray

但是,您还需要不可变地附加值,以使其正确(一个减缩规则),因此您需要使整行代码如下所示:


objects:{…state.objects,objectArray:[…state.objectArray,action.value]},


要使用旧值和正在添加的新值创建一个新数组。

只有状态对象在该点的作用域中(作为减速器的参数提供),请尝试在出现错误的点处切换
objectArray
以获得
state.objectArray

但是,您还需要不可变地附加值,以使其正确(一个减缩规则),因此您需要使整行代码如下所示:


objects:{…state.objects,objectArray:[…state.objectArray,action.value]},


要使用旧值和正在添加的新值创建一个新数组。

objects:{…state.objects,objectArray:[…state.objects.objectArray,action.value]},有没有技巧谢谢你对象:{…state.objects,objectArray:[…state.objectArray,action.value]},有没有技巧谢谢你