NB: Это вопрос, очень похожий на Redux; доступ к другим частям... но он не имеет ничего общего с маршрутизатором: (таким образом, нельзя решить так же
Когда я уменьшаю одну часть состояния, я "чувствую", как будто мне нужно также обращаться к другим частям. Я признаю, что я просто могу "замалчивать" основные принципы Redux или иметь недостатки в архитектуре приложения.
Моим текущим решением было бы изменить код github: combineReducers.js:
var finalState = mapValues(finalReducers, (reducer, key) => {
var previousStateForKey = state[key]
var nextStateForKey = reducer(previousStateForKey, action)
...
}
от
var nextStateForKey = reducer(previousStateForKey, action)
в
var nextStateForKey = reducer(previousStateForKey, action, state)
что позволило бы мне делать то, что мне нужно:
function reducer(state, action, root) {
if (root.otherPart.get("isSomething")) {
return state.set("anotherThing", true);
}
return state;
}
Вопрос в том, действительно ли я нахожусь на правильном пути, или это то, что нужно решить с использованием разных архитектурных подходов, без необходимости доступа к одной части состояния из других частей?
** ОБНОВЛЕНИЕ 5 ч. Декабрь 2018 года **
Из-за относительно высокого интереса к этому вопросу (15 голосов голосов), я добавляю свой собственный ответ ниже, надеюсь, что это поможет тем, кто ищет этот ответ.