10
我想在创建React组件时使用一些抽象。例如:React.js中的抽象
class AbstractButton extends React.Component {
render() {
return (
<button
onClick={this.props.onClick}
className={this.definitions.className}>
{this.props.text}
</button>
}
}
class PrimaryButton extends AbstractButton {
constructor(options) {
super(options);
this.definitions = {
className: 'btn btn-primary'
};
}
}
class SuccessButton extends AbstractButton {
constructor(options) {
super(options);
this.definitions = {
className: 'btn btn-success'
};
}
}
我不想通过props
通过这些definitions
,因为我知道,这些definitions
--in这种情况下,class
--Will永远不会改变。
它是React中的反模式吗?还是可以吗?
我的问题是指this altjs issue:这种抽象与@connectToStores
不兼容。
React倾向于关注构图而不是继承,但是你的代码对我来说并不邪恶。 – christopher
是的,它通常被认为是反模式。这里有一篇有趣的文章:https://medium.com/@dan_abramov/how-to-use-classes-and-sleep-at-night- 9af8de78ccb4 –