我有一个通过高阶组件管理的受控输入表单。结构是这样的:
场高阶组件
function BaseField(WrappedComponent) {
class WrappedField extends React.Component {
constructor(props) {
super(props);
this.state = {
value: '',
active: false,
}
}
setValue = (e) => {
this.setState({ value: e.target.value })
}
...
<WrappedComponent
{...this.props}
value={this.state.value}
set={this.setValue}
active={this.state.active}
/>
....
场地
import React from 'react';
import BaseField from './BaseField';
const TextField = (props) => {
return <input
value={props.value}
onChange={props.set}
name={props.name}
type={props.type}
/>
}
export default BaseField(TextField);
当使用TextField
它时效果很好 - 但是,我想更灵活地使用它 - 例如,我希望能够onChange
在某些情况下增强功能,总是让它设置状态,但也让它根据状态做其他事情或使用的组件中的功能TextField
。
我是否误解了 HOC 的工作原理?