Промежуточному программному обеспечению Redux предоставляется миниатюрная версия API хранилища Redux в качестве аргумента самой внешней функции. Полный API магазина - {dispatch, subscribe, getState, replaceReducer}
. Промежуточному программному обеспечению предоставляется только доступ к {dispatch, getState}
.
Что касается того, почему это объект, а не отдельные аргументы, , это просто подробности реализации :
const middlewareAPI = {
getState: store.getState,
dispatch: (...args) => dispatch(...args)
}
const chain = middlewares.map(middleware => middleware(middlewareAPI))
dispatch = compose(...chain)(store.dispatch)