Nuestro equipo redactor ha pasado mucho tiempo investigando soluciones a tus preguntas, te compartimos la resolución así que deseamos serte de mucha apoyo.
Solución:
Tiene dos opciones, ya sea usar un objeto o usar el nombre de la clase, comencemos con el objeto
class B
abc()
alert("Hello World");
const b = new B();
export default b;
Entonces, cuando llama a este archivo, puede acceder a la función abc como la siguiente
import b from './B.js';
class A extends Component {
_onItemPressed(item)
b.abc();
...
La otra forma es usar la clase en su lugar de la siguiente manera
class B
B.abc = function()
alert("Hello World");
module.exports =
functions: B
;
Entonces, cuando llama a este archivo, puede acceder a la función abc como la siguiente
import b from './B.js';
class A extends Component {
_onItemPressed(item)
b.functions.abc();
...
Nota: la clase B no debe ser un componente, puede usarla como clase auxiliar.
Además, puede mejorar la forma en que maneja el objeto usando un patrón único como ya mencioné en React native: la mejor manera de crear un patrón único
ACTUALIZAR: Si insiste en usar el componente en lugar de una función de clase, puede llamarlo a través de referencia, de la siguiente manera:
export default class B extends Component
constructor(props)
super(props);
this.abc = this.abc.bind(this);
abc()
alert('Hello World');
render()
return null
ahora en el componente A puedes llamar a B por referencia
import B from "./B.js";
class A extends Component
_onItemPressed(item)
this._b.abc();
render()
return (
Click Me !
(this._b = ref) />
);
No inicias tu clase, para solucionar esto necesitas cambiar el B.abc()
a new B().abc()
;
Noté que no exportaste tu clase B. Prueba
class B extends Component
static abc()
alert('Hello World');
export default B
luego importarlo en la clase A
import B from './B';
Déjame saber si esto funcionó para ti.
Si te animas, tienes la habilidad dejar una sección acerca de qué le añadirías a esta reseña.