【发布时间】:2017-10-26 15:49:09
【问题描述】:
我看的所有示例,withHandlers 中实际调用的函数似乎调用了props 中的函数,但我不知道该函数是如何定义的。这是来自docs for humans 的一个小例子。
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..)
【问题讨论】: