Redux - не обновляется, хотя JSON .parse () - PullRequest
0 голосов
/ 09 июля 2020

Я использую Redux и имею следующее состояние:

const inistialStateRedux = {
  filters: {
    data: {
      countries: [],
      divisions: [],
      companies: [],
      locations: [],
      fields: [],
      associativeFilterMap: {
        bereiche: [],
        gesellschaften: [],
      },
    },
  },
};
export default inistialStateRedux;

Мои действия. js выглядит так:

export const SET_CONFIGURED_FILTERS = 'SET_CONFIGURED_FILTERS';
export const SET_CONFIGURED_FILTERS_RESYNC = 'SET_CONFIGURED_FILTERS_RESYNC';
export const setConfiguredFilters = (key, value) => ({
  type: SET_CONFIGURED_FILTERS,
  key,
  value,
});

export const setConfiguredFiltersResync = (key, value) => ({
  type: SET_CONFIGURED_FILTERS_RESYNC,
  key,
  value,
});

Мой помощник. js выглядит так:

export const createReducer = (initialState, handlers) => (
  state = initialState,
  action
) => {
  if (action.type in handlers) {
    return handlers[action.type](state, action);
  }
  return state;
};

export const multiUse = (reducer, name = '') => (state = null, action) => {
  if (action.name !== name) return state;

  return reducer(state, action);
};

Мой редуктор. js выглядит так:

import {
  createReducer
} from '../helper';
import * as Action from './actions';

export default createReducer({
  data: {},
}, {
  [Action.SET_CONFIGURED_FILTERS]: (state, action) => ({
    ...state,
    data: {
      ...state.data,
      [action.key]: action.value,
    },
  }),
}, {
  [Action.SET_CONFIGURED_FILTERS_RESYNC]: (state, action) => ({
    ...state,
    data: {
      ...state.data,
      [action.key]: action.value,
    },
  }),
});

Чего я хочу достичь:

Установить новый массив стран.

Мой код:

  store.dispatch(setConfiguredFiltersResync('countries', configured.countries))

Даже если я сделаю следующее в моем редукторе:

[action.key]: JSON.parse(JSON.stringify(action.value)),

Redux показывает: (состояния равны).

Что я делаю не так? Как это исправить?

...