在中间件上阅读Redux's documentation和在applyMiddleware上阅读source code后,我不明白为什么中间件需要咖喱语法:
const logger = store => next => action => {
console.log('dispatching', action)
let result = next(action)
console.log('next state', store.getState())
return result
}
无法通过
实现同样的目标const logger = (store, next) => action => {
console.log('dispatching', action)
let result = next(action)
console.log('next state', store.getState())
return result
}
在applyMiddleware中进行撰写调用:
dispatch = compose(...middleware)(middlewareAPI , store.dispatch)
答案 0 :(得分:1)
可以找到与Dan Abramov的讨论here。他说,
我们本可以做到(商店,下一个)=> action => ()但我没有看到 只是一路走来的问题。您可能需要一些配置 之后,选项=> (商店,下一个)=> action => ()看起来 有点武断。
所以不,没有必要讨论参数。
答案 1 :(得分:0)
不,因为它是一种推迟稍后执行的功能的方法。 ()=>()返回一个函数对象,该函数对象仅在稍后调用func obj时执行。