Основываясь на моем понимании из комментариев,
Вы можете достичь того, что вам нужно, как показано ниже
- Сохраните начальное состояние
fontSize
значение в обоих редукторах. - Каждый раз, когда пользователь обновляет
fontSize
из редуктора настроек с помощью action
, отправляйте другое действие с тем же значением fontSize
, чтобы обновить редуктор статей и вычислить новое значение из него (вы можете сохранить его под другим именем в редукторе статей, в зависимости от ваших требований) - Теперь вы будете обновлять
fontSize
в редукторе настроек в соответствии с обновлением пользователя , новое вычисленное значение, основанное на обновленном fontSize
в редукторе статьи вместе с исходным (начальным) fontSize
.
// Assuming you are using thunk middleware
// While dispatching action for fontSize update
updateFontSize (fontSize) {
return dispatch => {
dispatch({type: UPDATE_FONT_SIZE, fontSize});
dispatch({type: GET_UPDATED_FONT_SIZE, fontSize});
}
}
// settingsReducer.js
const initialState = {
fontSize: 30,
fontWeight: 400,
...
}
reducer (state = initialState, action) {
switch(action.type) {
case UPDATE_FONT_SIZE:
return {...state, fontSize: action.fontSize};
...
}
// articleReducer.js
const initialState = {
fontSize: 30,
...
}
reducer(state = initialState, action) {
switch(action.type) {
case GET_UPDATED_FONT_SIZE: // Different action, with different data update based on fontSize
return {...state, additionalValue: (action.fontSize / 2)};
...
}