我看的所有示例,实际withHandlers
调用的函数似乎都是从 调用函数props
,但我不知道该函数是如何定义的。这是人类文档中的一个小例子。
compose(
withState('count', 'setCount', 0),
withHandlers({
incrementCount: props => event => {
event.preventDefault()
props.setCount(props.count + 1)
}
})
)(ComponentToEnhance)
我的理解是这将创建一个带有“状态”的 HOC 来跟踪count
。我将能够通过使用定义的处理程序(例如onClick={incrementCount}
)的操作来增加计数。
那么我的问题是,setCount
实际定义在哪里......我正在想象类似的东西
function setCount(i) {
return i+1;
}
既然是从 props 调用的,那么在使用组件的时候,是不是必须要作为 props 传入呢?我很困惑为什么withState
需要知道状态更新程序名称,或者如果是这种情况,它甚至是如何相关的。
它是否只是为您自动定义一个函数,该函数将用您传递的任何参数替换状态参数(如果是的话,则为facepalm ..)