我只是在学习 React,我正在使用 ES7 语法编写组件。我的想法是创建一个基础组件,其中将包含一些我希望所有派生组件都具有的方法。例如,我想在没有 mixin 的情况下实现 valueLink,以便在我的所有组件中进行双向绑定。这是我的想法:
class MyComponent extends React.Component {
bindTwoWay(name) {
return {
value: this.state[name],
requestChange: (value) => {
this.setState({[name]: value})
}
}
};
}
class TextBox extends MyComponent {
state = {
val: ''
};
render() {
return (<div>
<input valueLink={this.bindTwoWay('val')}/>
<div>You typed: {this.state.val}</div>
</div>)
}
}
它工作得很好。但是,我无法找到有关此方法的太多信息。这与 valueLink 无关,这只是一个例子。这个想法是在基础组件中包含一些方法,然后扩展该组件,以便派生组件具有所有这些方法,就像通常的 OOP 方式一样。所以我只想知道这是否完全没问题,或者有一些我不知道的缺陷。谢谢。