Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何删除map Immutable.js中的嵌套元素_Javascript_Reactjs_Redux_Immutable.js - Fatal编程技术网

Javascript 如何删除map Immutable.js中的嵌套元素

Javascript 如何删除map Immutable.js中的嵌套元素,javascript,reactjs,redux,immutable.js,Javascript,Reactjs,Redux,Immutable.js,在我的redux案例中,我有以下结构: initialState: SearchState = fromJS({ isFiltersPanelOpen: false, sections: { type: { Course: { isSelected: false, filterValues: 42, }, Path: { isSelected: false, filterValue

在我的redux案例中,我有以下结构:

initialState: SearchState = fromJS({
  isFiltersPanelOpen: false,
  sections: {
    type: {       Course: {
        isSelected: false,
        filterValues: 42,
      },
      Path: {
        isSelected: false,
        filterValues: 12,
      },
      Resources: {
        isSelected: false,
        filterValues: 11,
        }
     }
  }
})

我必须删除资源。我用deleteIn,但我有个问题。当其他案例起作用时,它们会得到初始值,我删除的资源就会恢复生机。如果我理解正确,我应该使用update/updateIn,然后使用delete/deletIn。我需要一些例子。

我在这里盲目回答。在没有看到任何代码的情况下,问题可能是没有应用修改后的状态

记住,不可变对象永远不会改变,突变总是导致返回新对象。因此,如果您忘记返回/应用返回的对象,您的更改将丢失

const reducer = createReducer(initialState, {
    deleteSection: (state, { id }) => {
        return state.deleteIn(['sections', 'Resources']);
    },
    deleteSectionToo: (state, { id }) => {
        // Update can be used too, but it is mostly useful when you want to change something.
        // e.g. add/remove an item in a sub-list.
        return state.update('sections', (sectionsState) => {
            return sectionsState.delete('Resources');
        });
    }
};

有关更多示例,请向我们展示您试图删除代码的实际代码。如果没有它,我假设您忘记分配mutator的返回值(deleteIn、updateIn…)。记住,不可变对象永远不会改变,突变总是导致返回新对象。