Я бы отправил имя и данные экземпляра компонента в качестве полезной нагрузки действия. Таким образом, вы можете создать редуктор для повторно используемого компонента, и в этом фрагменте состояния вы создадите ключ для каждого указанного 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: { ... }
}
...
}