Я хочу расширить класс React Component с помощью собственного класса.Generic Extended React Component Typcript
export class ReactComponent<P,S> extends React.Component<P,S> {
public doStuff() {
alert("Custom React Component");
}
}
export class MyComponent extends ReactComponent<MyProps, any> {
render() {
return <div onLoad={this.doStuff()}></div>;
}
}
Это похоже на компиляцию, но при загрузке возникает следующая ошибка.
Uncaught TypeError: Super expression must either be null or a function, not undefined
Использование React 15.3, должно быть, что-то не хватает.
Только предположение, но я уверен, что вы должны передать функцию 'onLoad' а не результат выполнения функции. Что-то вроде: 'onLoad = {this.doStuff.bind (this)}' –
Кроме того, я бы не рекомендовал этот шаблон. отслеживание супервызов разочаровывает, и вы можете достичь всех одинаковых функциональных возможностей, просто обернув компоненты, не расширяющие их (или создавая компонент более высокого порядка). – azium