Друзья, привет Возникла проблема : есть изначальное состояние, в котором есть всего два поля. Первое поле - объект, в котором есть лист, который подгружается с сервера. Условно, там данные с информацией о каких-то людях. Второе поле - динамические данные, которые указывают данные человека, на которого было кликнуто в списке(компоненте) людей.
Суть в том, что с тех пор, что эти данные меняются динамически, они присваиваются из persons.list перебирая его по ID. Редъюсера два - по одному на каждый объект состояния. Задача состоит в том, чтобы получить состояние одного редьюсера из другого. Как это можно реализовать?
// Изначальное состояние
const initialState = {
persons : {
list : [{pers1}, {pers2}],
fetched : false,
fetching : false,
error : null
},
currentPerson : {
id : 777,
name : 'Andreas',
surname : 'Smith',
clicks : 100500
}
// Редьюсеры. Редьюсеру currentPersonReducer нужно получить доступ к данным из
// состояния, которое сгенерировал нам personReducer, чтобы сделать
// итерацию по массиву и задать состояние текущего человека.
function currentPersonReducer(state = initialState.currentPerson, action) {
switch(action.type) {
case 'SET_PERSON':
//Здесь нужно получить доступ к данным редюсера
}
}
function personReducer(state = initialState.person, action) {
switch (action.type) {
case 'ADD_PERSON':
var personObj = action.payload;
return Object.assign({}, state, {
list : state.list.concat(personObj)
});
}
}
}