我试图理解这个 HOC 的基本示例:
function ppHOC(WrappedComponent) {
return class PP extends React.Component {
constructor(props) {
super(props)
this.state = {
name: ''
}
this.onNameChange = this.onNameChange.bind(this)
}
onNameChange(event) {
this.setState({
name: event.target.value
})
}
render() {
const newProps = {
name: {
value: this.state.name,
onChange: this.onNameChange
}
}
return <WrappedComponent {...this.props} {...newProps}/>
}
}
让我烦恼的是 this.props 在 return 语句中的使用:
return <WrappedComponent {...this.props} {...newProps}/>
据我了解,“this”指的是 PP 的实例?所以我们用 PP 的 props 实例化 WrappedComponent,它们是 React.Component 的 props,对吗?我确实了解我们也将 newProps 添加到这些道具中,但我只是不明白我们在这里用 this.props 做什么。
此外,PP 的构造函数正在获取一些道具作为参数。PP究竟是如何实例化的?ppHOC(MyComponent) 返回的类 PP 不是它的一个实例,对吗?为了实例化 PP,您必须执行“ppHOC(MyComponent)(someProps)”之类的操作?