【发布时间】:2017-01-05 23:27:10
【问题描述】:
我有一个表单,其中包含通过高阶组件管理的受控输入。结构是这样的:
字段高阶组件
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 的工作原理?
【问题讨论】:
标签: reactjs jsx higher-order-components