Encontré muchas preguntas y respuestas para esto, pero creo que la mía es ligeramente diferente. Todo lo que quiero hacer es usar la funcionalidad Base Class A en la Class B secundaria heredada, pero quiero usar una funcionalidad diferente para el método Cell . Con versiones anteriores de Webpack, funcionó bien, pero las versiones más nuevas de Webpack generan un "Error de tipo no detectado : no se puede llamar a una clase como una función ". El código de Webpack detecta el error es
export default function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } Leí que tiene que ver con la instancia de clase y usar una new palabra clave es la forma de hacerlo funcionar. En mi caso, usando la última solución, pierdo toda la funcionalidad de la Base Class A creando nuevos tipos de errores porque la Base Class ya se usa como una instancia de las otras partes de las aplicaciones y mantiene sus propios estados. Lo intenté con un código de ejemplo como este
const C = new B() y return (<C param1={x}>); pero tampoco funcionó. ¿Alguna recomendación?
Aquí hay una versión simplificada de mi código.
/****************BASE CLASS********************************/ const A = (props) => { const Cell = ({ p: row }) => { return .......... }; } export default A; /*************CHILD CLASS**********************************/ import { B } from 'baseClass'; export default class B extends A { Cell = ({ p: row }) => { return .......... }; } /*************MAIN**********************************/ import React, { Component } from 'react'; import B from 'childClass'; const List = class extends Component { render() { return (<B param1={x}>); } };