Обновление состояния на основе выбора (Redux) - PullRequest
0 голосов
/ 20 апреля 2020

будучи новичком в redux, я столкнулся со следующей проблемой: у меня есть список фильтров, который должен обновляться как после первой загрузки компонента, так и каждый раз, когда кто-то меняет раскрывающийся список в верхней панели навигации. Список фильтров зависит от другого раскрывающегося списка, который является частью моего состояния. Псевдокод ниже [1].

Я могу теоретически продублировать свою диспетчеризацию действий в обоих Компонентах (основной и панель навигации), но это, конечно, плохой дизайн.

Это подводит меня на вопрос: куда поместить избыточные вызовы диспетчеризации, которые сами должны получить доступ к состоянию? Будет ли это жить в файле действий, который затем должен был бы получить доступ к самому состоянию (которое само по себе не может быть хорошим дизайном)?

Спасибо!

[1]

function getDrillOptions() {
  let data = props.data; // <- is part of redux' store
  let countries = props.selectedFilters.countries; //<- part of redux' store
  let regions = getRegionForCountry(countries);
  let selectable = new Set();
  Object.keys(data[regions][countries]).map((weeknum) => {
    data[regions][countries][weeknum].map((row) => {
      selectable.add(row[event.target.value]);
    });
  });
  dispatch(populateFilters({filter: 'mainDrillOptions', value: [...selectable]})); // <- sets state
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...