许多redux示例显示直接在异步操作中发出HTTP请求;但是这会导致所有请求共同的重复代码数量超出,例如: 根据状态代码重试失败的请求 为每个请求附加公共HTTP标头. 根据响应调用其他
>根据状态代码重试失败的请求
>为每个请求附加公共HTTP标头.
>根据响应调用其他http请求(即:oauth令牌刷新)
>在路线转换中中止飞行中的请求.
我的直觉是,可以使用中间件来发出http请求(与redux-api-middleware
一样),这可以保持商店中的飞行请求 – 但是我也想知道我是否依赖于糟糕的习惯 – 是少量重复以不小的代价来支付不变性?
如果在多个函数之间存在重复,则将公共代码提取到另一个函数中.这没什么不同.不要复制代码,而是将公共代码提取到函数中并从您的操作创建者中调用它.
最后,可以使用自定义中间件抽象出这种模式.查看Redux仓库中的“真实世界”示例,了解它是如何完成的.