Skip to main content

 

compose(...functions)

概述

从右到左组合函数。

这是一个函数式编程的工具函数,并作为 Redux 中的一个方便工具包含在内。 你可能想用它来连续应用多个store增强器compose 同样可作为一个通用的独立方法使用。

警告

你通常不需要直接调用 compose。 Redux Toolkit 的 configureStore 方法 会自动配置带有标准 applyMiddleware 和 Redux DevTools store增强器的 Redux 存储,并提供 enhancers 参数以传入额外的增强器。

参数

  1. (arguments): 要组合的函数。每个函数期望接受单个参数。其返回值会作为参数传递给左侧的函数,以此类推。唯一例外的是最右侧的函数参数可以接受多个参数,因为它将决定组合后最终函数的参数签名。

返回值

(Function): 通过从右到左组合给定函数生成的最终函数。

示例

此示例展示了如何使用 compose 来增强一个store,结合 applyMiddleware 和来自 redux-devtools 包的几个开发者工具。

import { createStore, applyMiddleware, compose } from 'redux'
import { thunk } from 'redux-thunk'
import DevTools from './containers/DevTools'
import reducer from '../reducers'

const store = createStore(
reducer,
compose(applyMiddleware(thunk), DevTools.instrument())
)

小贴士

  • compose 只是让你写出深度嵌套的函数转换时不出现代码右移的情况。别过度神化它!