【发布时间】:2018-01-20 21:43:38
【问题描述】:
我不明白下面两个语句之间的区别。为什么在记录器中返回一个函数两次会使其有所不同?
返回函数
const logger = store => next => action => {
let result
console.groupCollapsed("dispatching", action.type)
console.log('prev state', store.getState())
console.log('action', action)
result = next(action)
console.log('next state', store.getState())
console.groupEnd()
return result
}
不返回函数
const logger = (store, next, action) => {
let result
console.groupCollapsed("dispatching", action.type)
console.log('prev state', store.getState())
console.log('action', action)
result = next(action)
console.log('next state', store.getState())
console.groupEnd()
return result
}
【问题讨论】:
-
好吧,这都是关于闭包的,然后您可以传递一个在第一种情况下已经知道
store和next函数的函数,并且只有action是可变的。在第二个函数中,没有一个参数是固定的,可以进行较少的优化。
标签: javascript reactjs redux middleware