我已经创建了如下所示的 react HOC 组件。
const UpdatedComponent = (OriginalComponent) => {
class NewComponent extends React.Component {
constructor(props) {
super(props)
this.state = {
counter:0
}
}
componentDidMount(){
}
incrementCount = () => {
this.setState(prevState => {
return {counter:prevState.counter+1}
})
}
render(){
return <OriginalComponent
incrementCount={this.incrementCount}
count={this.state.counter}
/>
}
}
return NewComponent
}
export default UpdatedComponent
我在下面的例子中使用了那个组件
class HoverCounter extends Component {
componentDidMount(){
}
handleMessages = () => {
// need to do somthing
}
render() {
const {incrementCount, count} = this.props
return (
<div onMouseOver={incrementCount}>
Hoverd {count} times
</div>
)
}
}
export default UpdatedComponent(HoverCounter)
我想知道能不能通过
handleMessages()
函数到 HOC?
喜欢这个
export default UpdatedComponent(HoverCounter,handleMessages)
我不知道如何将原始组件函数或道具传递给 HOC。
答案 0 :(得分:0)
您可以像这样在您的 Hoc 中获取所有内容:
const UpdatedComponent = (OriginalComponent , func) => {
componentDidMount(){
func()
}
在 HoverCounter 中,您也可以添加以下更改:
static handleMessages(){
// need to do something
}
export default UpdatedComponent(HoverCounter , HoverCounter.handleMessages)