Saltar al contenido

¿Cómo llamar a una función de otra clase en React-Native?

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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *