compose(...functions)
把 function 從右到左組合起來。
這是一個 functional programming 的 utility,並為了方便而直接被放在 Redux 裡。 你可能會想要使用它來在一行中使用幾個 store enhancer。
參數
- (arguments):要組合的 function。每個 function 都預期會接收一個參數。它的回傳值將會作為在它左邊的 function 的變數,以此類推。有個例外是當為最後被組合的 function 提供 signature 時, 最右邊的變數可接受多個參數。
回傳
(Function):藉由從右到左組合給定的 function 而獲得的最終 function。
範例
這個範例展示了要如何使用 compose
藉由 applyMiddleware
與幾個來自 redux-devtools 套件的開發工具來增強一個 store。
import { createStore, combineReducers, applyMiddleware, compose } from 'redux'
import thunk from 'redux-thunk'
import DevTools from './containers/DevTools'
import reducer from '../reducers/index'
const store = createStore(
reducer,
compose(
applyMiddleware(thunk),
DevTools.instrument()
)
)
提示
compose
做的只是讓你不需要把程式碼往右縮進,就能撰寫深度巢狀的 function 轉換。不要把它想得太複雜!