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 –