artem_phantom
@artem_phantom
Front-end developer

Получив json response с вложенными данными, каким образом возможно отправить данные в два Reducer-a?

Вызываю из view Действие в котором в итоге получаю response от ajax запроса.
Полученные данные имеют следующую структуру:
{
	"departments": [
		{
			"id": 1,
			"name": "General Department",
			"operators": [
				{
					"id": 1,
					"name": "Artem Maximum"
				},
				{
					"id": 2,
					"name": "Chehonte"
				}
			]
		},
		{
			"id": 2,
			"name": "Sales Department",
			"operators": [
				{
					"id": 3,
					"name": "Ne0d1n"
				},
				{
					"id": 4,
					"name": "Geronimo"
				},
				{
					"id": 5,
					"name": "Fungus"
				}
			]
		}
	]
}


Полученные данные, пропускаю через normalizr и в итоге имею следующие данные:
{
	"entities": {
		"departments": {
			"1": {
				"id": 1,
				"name": "General Department",
				"operators": [1, 2]
			},
			"2": {
				"id": 2,
				"name": "Sales Department",
				"operators": [3, 4, 5]
			}
		},
		"operators": {
			"1": {
				"id": 1,
				"name": "Artem Maximum"
			},
			"2": {
				"id": 2,
				"name": "Chehonte"
			},
			"3": {
				"id": 3,
				"name": "Ne0d1n"
			},
			"4": {
				"id": 4,
				"name": "Geronimo"
			},
			"5": {
				"id": 5,
				"name": "Fungus"
			}
		}
	},
	"result": {
		"departments": [1, 2]
	}
}


Можно ли в данном Action отправлять данные в Reducer и текущей и посторонней сущьности?
То есть в данном случае, существует две сущьности [Departments, Operators] и мне нужно обнавить обе сущьности в Store.
Сомневаюсь, правильно ли то что я хочу сделать отправку данных в посторонний Reducer.
Однако, обрабатывать данные посторонней сущьности внутри Department Reducer-а мне кажется совсем невозможным.

Буду очень признателен, если кто подскажет лучшие практики для реализации данной задачи.
  • Вопрос задан
  • 337 просмотров
Пригласить эксперта
Ответы на вопрос 1
rmaksim
@rmaksim
по идее нет проблем вызвать несколько Action с нужными им данными
ведь для каждого же нужны только ЕГО данные? так?
вот один из примеров на гитхабе
function receiveUserPre(userId, entities) {
  return dispatch => {
    dispatch(receiveUser(entities));
    dispatch(fetchUserData(userId, entities.users[userId].username));
  };
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы