【问题标题】:Order of multiple middleware in React ReduxReact Redux 中多个中间件的顺序
【发布时间】:2017-10-06 14:45:55
【问题描述】:

如果我有多个中间件(例如 3 个),都捕获一个动作,会发生什么?它们是否按照商店创建中定义的顺序触发?

createStore(reducer,applyMiddleware(middle1, middle2, middle3));

middle1 会先被触发,然后是 middle2,然后是 middle3 ? (调用 next() 时) 我可以在 middle2 之前调用特定的 action force middle3 吗?

【问题讨论】:

    标签: reactjs redux react-redux middleware


    【解决方案1】:

    中间件管道与您传递给applyMiddleware() 的顺序完全匹配。所以,在那个例子中:

    • 调用store.dispatch() 将操作传递给middle
    • middle1 调用next(action) 时,它转到middle2
    • middle2 调用next(action) 时,它转到middle3
    • middle3调用next(action)时,会进入实际的store,并执行reducer逻辑

    不,您不能在商店创建后重新订购中间件。

    【讨论】:

    • 您是否有编写测试以检查中间件是否以正确顺序应用的好方法?你认为一开始就这样做有好处吗?
    • 我想不出一个,不,我认为这不值得测试。只需在您的应用设置逻辑中添加几行代码即可。
    猜你喜欢
    • 2018-07-17
    • 1970-01-01
    • 2021-12-08
    • 2018-11-17
    • 1970-01-01
    • 2023-03-23
    • 2020-07-18
    • 1970-01-01
    • 2022-08-18
    相关资源
    最近更新 更多