Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.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
Reactjs 重复嵌套状态_Reactjs_Redux_React Redux - Fatal编程技术网

Reactjs 重复嵌套状态

Reactjs 重复嵌套状态,reactjs,redux,react-redux,Reactjs,Redux,React Redux,我读过很多文章和例子,但是我没有找到一种方法来简化嵌套状态。这是否可以在不使用rest运算符的情况下通过属性(如下面的部分代码)对状态进行udpate const initialState = { currentTag: 'fr-FR', locales: { components: [], }, }; const setComponentsLocales = (state, payload) => ({ ...state, [payload.oid]: p

我读过很多文章和例子,但是我没有找到一种方法来简化嵌套状态。这是否可以在不使用rest运算符的情况下通过属性(如下面的部分代码)对状态进行udpate

const initialState = {
  currentTag: 'fr-FR',
  locales: {
    components: [],

  },
};

const setComponentsLocales = (state, payload) => ({
  ...state,
  [payload.oid]: payload.locales,
});

const localesReducer = (state, action) => {
  switch (action.type) {
    case types.SET_COMPONENT_LOCALES:
      return {
        ...state,
        components: setComponentsLocales(state.components, action.payload),
      };
    default:
      return state;
  }
};

export default (state = initialState, action) => {
  switch (action.type) {
    case types.SET_LANGUAGE:
      return {
         ...state,
         currentTag: action.payload.tag,
      };
    default:
      return {
        ...state,
        locales: localesReducer(state.locales, action),
      };
   }
};

如果你不喜欢扩展运算符,你可以使用
对象。assign
方法这是一样的:)我不想使用
对象。assign
在每个属性上你需要使用不变性,所以你没有很多选择,
扩展运算符
对象。assign
或类似的库