我目前正在通过以下方式继承 ES6 React 基础组件:
model.js(基础组件):
class ModelComponent extends React.Component {
render() {
// Re-used rendering function (in our case, using react-three's ReactTHREE.Mesh)
...
}
}
ModelComponent.propTypes = {
// Re-used propTypes
...
};
export default ModelComponent;
然后我有两个扩展组件,它们看起来基本上是这样的:
import ModelComponent from './model';
class RobotRetroComponent extends ModelComponent {
constructor(props) {
super(props);
this.displayName = 'Retro Robot';
// Load model here and set geometry & material
...
}
}
export default RobotRetroComponent;
这似乎工作正常。两种模型都按照我的预期出现并工作。
但是,我在多个地方读到继承不是 React 的正确方法——相反,我应该使用组合。但话说回来,React v0.13 不支持 Mixin?
那么,我上面采取的方法好吗?如果没有,有什么问题,我应该怎么做?