В настоящее время я наследую базовый компонент ES6 React следующим образом:
model.js(базовый компонент):
class ModelComponent extends React.Component {
render() {
// Re-used rendering function (in our case, using react-three 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 - вместо этого я должен использовать композицию. Но опять же, Mixins не поддерживаются в React v0.13?
Итак, это подход, который я принимаю выше ОК? Если нет, то какая проблема и как мне это сделать?