Возможно, на это был дан ответ раньше, но мне трудно найти ответ.Состояние доступа от другого редуктора React/Redux
У меня есть редукторы со своим исходным состоянием. Есть ли способ (хорошая практика, конечно) получить доступ к исходному состоянию из одного редуктора?
Reducer Один:
const initialState = Immutable.fromJS({ loadData: [] })
const reducerOne = (state = initialState, action) => {
switch (action.type) {
case SELECT_REPORT_FORMAT: {
return state.merge({ loadData: state.get('loadData') });
}
....
}
Reducer Два:
const initialState = Immutable.fromJS({ newData: [] });
const reducerTwo = (state = initialState, action) => {
switch (action.type) {
case GET_NEW_DATA: {
// Is there a way to "call" the SELECT_REPORT_FORMAT in
// reducerOne and get its new state (state.get('loadData')) from here?
// I did add case SELECT_REPORT_FORMAT in this reducer, and
// it did get called, but the state is with the property of
// newData, which makes sense. I need to access the loadData
// array from here.
return state.merge({ newData: state.get('loadData') });
}
....
}
Спасибо!
Спасибо за ответ, но мне нужно получить конечные результаты начального состояния после его вызова из «SELECT_REPORT_FORMAT» в редукторе. – FNMT8L9IN82
Я имею в виду, мне нужно вернуть значение state.merge ({loadData: state.get ('loadData')}) внутри редуктора два. – FNMT8L9IN82
Итак, не первоначальное состояние вообще, вы хотели сказать состояние после того, как некоторые действия были уволены. В этом случае нет, вы не должны попасть в состояние других редукторов, так как это нарушит инкапсуляцию и может вызвать бесконечные циклы. Почему бы не включить компонентный огонь в действие, которое использует редуктор в ответ на изменение состояния, вызванное редуктором B? – ZekeDroid