Javascript 插入嵌套数组后,Redux状态消失

Javascript 插入嵌套数组后,Redux状态消失,javascript,reactjs,redux,redux-thunk,Javascript,Reactjs,Redux,Redux Thunk,尝试插入到我的redux状态时,我的状态将消失,。我正在检查是否有parentId,如果有,我将插入parentId children数组,但是如果没有提供parentId,我只将有效负载插入数组。最后一部分工作正常,问题在于添加到子数组: 这是我的代码: 导出默认值(类别=[],操作=>{ 开关(动作类型){ 案例“获取所有类别”: 返回动作。有效载荷; //我对下面的案例有问题 案例“创建类别”: return action.payload.parentId ?类别。地图((类别)=>{

尝试插入到我的redux状态时,我的状态将消失,。我正在检查是否有parentId,如果有,我将插入parentId children数组,但是如果没有提供parentId,我只将有效负载插入数组。最后一部分工作正常,问题在于添加到子数组: 这是我的代码:

导出默认值(类别=[],操作=>{
开关(动作类型){
案例“获取所有类别”:
返回动作。有效载荷;
//我对下面的案例有问题
案例“创建类别”:
return action.payload.parentId
?类别。地图((类别)=>{
如果(
category.\u id.toString()==action.payload.parentId.toString()
) {
返回[
…儿童,
{
_id:action.payload.\u id,
名称:action.payload.name,
slug:action.payload.slug,
儿童:[],
},
];
}否则{
返回[
{
_id:action.payload.\u id,
名称:action.payload.name,
slug:action.payload.slug,
儿童:[],
},
];
}
})
: [
…类别,
{
_id:action.payload.\u id,
名称:action.payload.name,
slug:action.payload.slug,
儿童:[],
},
];
违约:
退货类别;
}

};
CREATE\u CATEGORY
案例中的第一个条件实际上不会返回任何内容。 您可以尝试使用与第二种情况相同的方法,即:

[
  ...(categories.map((category) => {
        if (
          category._id.toString() === action.payload.parentId.toString()
        ) {
          return [
            ...category.children,
            {
              _id: action.payload._id,
              name: action.payload.name,
              slug: action.payload.slug,
              children: [],
            },
          ];
        } else {
          return [
            {
              _id: action.payload._id,
              name: action.payload.name,
              slug: action.payload.slug,
              children: [],
            },
          ];
        }
      }))
  ]
最终代码:

导出默认值(类别=[],操作=>{
开关(动作类型){
案例“获取所有类别”:
返回动作。有效载荷;
//我对下面的案例有问题
案例“创建类别”:
return action.payload.parentId
? [
…(categories.map((categority)=>{
如果(
category.\u id.toString()==action.payload.parentId.toString()
) {
返回[
…儿童,
{
_id:action.payload.\u id,
名称:action.payload.name,
slug:action.payload.slug,
儿童:[],
},
];
}否则{
返回[
{
_id:action.payload.\u id,
名称:action.payload.name,
slug:action.payload.slug,
儿童:[],
},
];
}
}))
]
: [
…类别,
{
_id:action.payload.\u id,
名称:action.payload.name,
slug:action.payload.slug,
儿童:[],
},
];
违约:
退货类别;
}

};
你能不能也在问题中粘贴类别模型?这确实回答了我的问题,谢谢!如果可以的话,我会跟进的。使用以下代码,如何更新category.children。假设我想在children数组中插入一个新的类别,当我尝试这样做时,它不太起作用。请参阅上面我更新的答案。