我已经开始将redux集成到我的第一个反应应用程序中 . (这里很新鲜)

这是一个购物车应用程序 . 我希望将某些业务逻辑集中到中间件类中 .

例如 . LeaveCart - > NotifyServerEmptyCart,COUNTDOWN_HIDE,MODAL_SHOW . (后续行动)

有点像行动事件经理的命令 .

有什么理由我不能将我自己的middlware函数导出为:

export function signalRMiddleware(store: any) {
    return (next: any) => (action: any) => {
        if (action.signalR) {
            switch (action.type) {
                case ABC:
                    _hub.server.methodOnTheServer();
                    break;
                default:
                    {
                        const myCurrentState = store.getState().objectWithinState;
                        _hub.server.methodOnTheServer2(action.type, myCurrentState);
                    }
            }
        }
        return next(action);
    }
}

源代码:https://medium.com/@lucavgobbi/signalr-react-redux-5a100a226871

然后将其注册为

let store = createStore(
  todoApp,
  // applyMiddleware() tells createStore() how to handle middleware
  applyMiddleware(signalRMiddleware)
)

源代码:https://medium.com/@lucavgobbi/signalr-react-redux-5a100a226871

这个中间件正在“监听”这个动作,即 . 我的组件仍然需要调用dispatch({type:ABC}),这意味着所有reducers都将接收此调用 .

然而Thunk允许我直接从我的组件调用Thunk函数,而不通知所有reducers,直到我的Thunk函数可以调度适当的操作 .

我可以像thunks一样直接调用我自己的自定义中间件函数,还是我完全混合这两个概念?