vida renderizar react qué props permite pasar nos método etiquetas español entre ejemplos diferentes datos comunicacion componentes ciclo reactjs class methods call

renderizar - ReactJS-Llamar a un método de componente de otro componente



react js ejemplos (2)

Bueno, en realidad, React no es adecuado para llamar a los métodos secundarios del padre. Algunos marcos, como Cycle.js , permiten acceder fácilmente a los datos tanto del padre como del hijo y reaccionar a ellos.

Además, hay una buena posibilidad de que realmente no lo necesites. Considere llamarlo a un componente existente, es una solución mucho más independiente. Pero a veces todavía lo necesitas, y luego tienes pocas opciones:

  • Pase el método hacia abajo, si es un niño (el más fácil, y es una de las propiedades pasadas)
  • añadir biblioteca de eventos; En el ecosistema React, el enfoque de flujo es el más conocido, con la biblioteca Redux . Separa todos los eventos en estados y acciones separados, y los envía desde componentes
  • Si necesita usar la función del hijo en un componente padre, puede envolverlo en un tercer componente y clonar el padre con accesorios aumentados.

UPD : si necesita compartir alguna funcionalidad que no involucre ningún estado (como las funciones estáticas en OOP), entonces no es necesario que la contenga dentro de los componentes. Solo declaralo por separado e invoca cuando sea necesario:

let counter = 0; function handleInstantiate() { counter++; } constructor(props) { super(props); handleInstantiate(); }

Tengo dos componentes. Quiero llamar a un método del primer componente del segundo componente. ¿Cómo puedo hacerlo?

Aquí está mi código.

Primer componente

class Header extends React.Component{ constructor(){ super(); } checkClick(e, notyId){ alert(notyId); } } export default Header;

Segundo componente

class PopupOver extends React.Component{ constructor(){ super(); // here i need to call Header class function check click.... // How to call Header.checkClick() from this class } render(){ return ( <div className="displayinline col-md-12 "> Hello </div> ); } } export default PopupOver;


Puedes hacer algo como esto

import React from ''react''; class Header extends React.Component { constructor() { super(); } checkClick(e, notyId) { alert(notyId); } render() { return ( <PopupOver func ={this.checkClick } /> ) } }; class PopupOver extends React.Component { constructor(props) { super(props); this.props.func(this, 1234); } render() { return ( <div className="displayinline col-md-12 "> Hello </div> ); } } export default Header;

Usando estaticos

var MyComponent = React.createClass({ statics: { customMethod: function(foo) { return foo === ''bar''; } }, render: function() { } }); MyComponent.customMethod(''bar''); // true