Мне трудно понять промежуточное ПО Redux и то, как именно оно настраивается в магазине Redux. Например, у меня есть следующие примеры
const store = compose(
resetRedux('LOGOUT_USER'),
applyMiddleware(...middlewares),
)(createStore)(rootReducer, initialState);
resetRedux
— это промежуточное ПО, которое в основном сбрасывает все хранилище избыточности при отправке строки LOGOUT_USER
. Это прекрасно работает, однако, если я помещу console.log
в промежуточное программное обеспечение resetRedux
, оно будет вызываться только один раз, что странно, учитывая, что я полагаю, что действие нужно проверять каждый раз, чтобы иметь возможность решить, следует ли сбрасывать хранить.
export default function resetMiddleware(types = ['RESET']) {
return (next) => (reducer, initialState) => {
const resetTypes = Array.isArray(types) ? types : [types];
console.log('THIS IS ONLY CALLED ONCE??!')
const enhanceReducer = (state, action) => {
if (~resetTypes.indexOf(action.type)) {
state = undefined;
}
return reducer(state, action);
};
return next(enhanceReducer, initialState);
}
};
Итак, мне любопытно, как это работает, когда console.log
вызывается только один раз.
compose()
иcreateStore()
? Это действительно, но ужасно, и в последнее время я видел, как оно всплывает в нескольких вопросах. Если это все еще где-то в документах, нам нужно обновить документы, чтобы больше не учить этому. Легче понять синтаксис:createStore(reducer, preloadedState, composedEnhancers)
- person markerikson   schedule 02.06.2016