从嵌套在对象中的数组中删除对象

jo87casi

我开始与redux一起玩,到目前为止我很惊讶。我现在的问题是,我的新reducer函数更改了一个状态变量的类型,而我不希望那样。

国家应具有如下形式: 在此处输入图片说明

我只想从jsons数组中删除一个对象:

pseudo:
delete state.items[item_index].jsons[json_to_delete_index]

我最终得到了这个reducer,它现在以对象而不是数组的形式返回项目状态。

case DELETE_JSON:
    const item_index = state.items.findIndex((url) => url.url_id === action.payload.url_id);
    const json_index = state.items[item_index].jsons.findIndex((json) => json.json_id === action.payload.json_id);
    return {
        ...state,
        items: {
            ...state.items,
            [item_index]: {
                ...state.items[item_index],
                jsons:
                    [
                        ...state.items[item_index].jsons.splice(0, json_index),
                        ...state.items[item_index].jsons.splice(json_index + 1)
                    ]
            }
        }
    };

到目前为止,我已经尝试了各种方法,但是在高度嵌套的对象中更改状态似乎仍然像是对redux的折磨。有人知道写方法吗?

jo87casi

我通过使用不可变性助手中的update()解决了这一问题。非常便利

import update from 'immutability-helper';

/* some other code */

case DELETE_JSON:
    const item_index = state.items.findIndex((url) => url.url_id === action.payload.url_id);
    const json_index = state.items[item_index].jsons.findIndex((json) => json.json_id === action.payload.json_id);
    return update(state, {
            items: {
                [item_index]: {
                    jsons: {$splice: [[json_index]]}
                }
            }
        });

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

更改嵌套在对象数组中的对象的状态

MongoDB获取嵌套在对象数组中的单个对象

如何设置状态嵌套在对象数组中的数组

如何推送到嵌套在对象中的数组?

如何迭代嵌套在对象中的数组作为道具

嵌套在对象数组解构中并赋值

解决嵌套在对象数组中的承诺

将对象推入嵌套在对象数组中的对象数组

如何通过嵌套在对象数组的属性中的对象属性的值在对象数组中查找多个索引?

删除嵌套在对象内部的数组项

如何渲染属性嵌套在对象嵌套数组中的元素数组?

删除嵌套在Ruby on Rails对象数组中的属性

如何删除嵌套在两个数组中的对象?

如何使用_.where通过ID查找嵌套在对象数组中的对象?

遍历嵌套在对象内部的数组

如何获取深度嵌套在对象中的数组中的项目总数?

如何更新和定位嵌套在对象中的数组中的正确索引?

从嵌套在对象中的数组中随机选择元素的逻辑,该对象进一步嵌套在数组中

解构嵌套在数组中的对象

销毁嵌套在数组中的对象

解组嵌套在JSON对象中的数组

如何仅在猫鼬中使用聚合填充嵌套在对象数组中的字段?

如何从嵌套在对象中的数组中选择随机项目

Javascript:找不到嵌套在对象中的数组的最大值

如何在React Admin的show / ArrayField组件中呈现嵌套在对象内部的数组的内容?

确定函数是否嵌套在对象中

嵌套在对象中的函数如何知道其路径?

如何从嵌套在数组对象内部的数组中删除重复的对象值?

如何将对象推送到嵌套在对象中的数组中并在 Vue 中保留反应性