моделирование реактивных компонентов многократного использования с состоянием, хранящимся в редуксе - PullRequest
1 голос
/ 12 февраля 2020

Это вопрос о дизайне / архитектуре программного обеспечения:

Я хочу смоделировать компонент в реакции, чье состояние хранится в избыточном количестве, но я хочу иметь возможность создавать несколько экземпляров этого компонента. Лучшее, что я могу придумать, - это инкапсулировать все свойства компонента в объекте, а затем поместить этот объект в массив, используя поле id или индекс, чтобы получить компонент, который вы ищете, но я не уверен, что это это лучший подход. Есть ли «стандартный» или лучший отраслевой метод решения go по этому поводу?

1 Ответ

1 голос
/ 13 февраля 2020

Я бы отправил имя и данные экземпляра компонента в качестве полезной нагрузки действия. Таким образом, вы можете создать редуктор для повторно используемого компонента, и в этом фрагменте состояния вы создадите ключ для каждого указанного c экземпляра.

//reducer for generic component
export default (state, action) => {
  switch (action.type) {
    case "SAVE_GENERIC_COMPONENT": 
      return { ...state, [action.payload.name]: action.payload.data }
  }
}

Ваш магазин будет выглядеть следующим образом:

{
  ...
  genericComponent: {
    instance1: { ... },
    instance2: { ... },
    instanceN: { ... }
  }
  ...
}
...