2016-11-17 4 views
0

Nehmen wir an, eine React-Komponente hat mehrere Eltern. Wenn ich eine Funktion des Supper Parents aufrufen wollte (Die höchste Komponente). Wie kann ich das machen. Bitte beachten Sie den Beispielcode.Aufruf an die Super-Elternfunktion von der Kindkomponente, wenn sie mehrere Eltern verschachtelt hat

`` `

export default class WeekView extends React.Component {  
    constructor(props) { 
     super(props); 
    } 

    // this functions has to be called from third child 
    loadData() { 
     var data = []; 
     this.setState({events : data}); 
    } 

    render() { 
     return (
      <ChildOne > 
     ); 
    } 
} 

export class ChildOne extends React.Component { 
    constructor(props) { 
     super(props); 
    } 

    render() { 
     return (
      <ChildTwo /> 
     ); 
    } 
} 

export class ChildTwo extends React.Component { 
    constructor(props) { 
     super(props); 
    } 

    render() { 
     return(
      <ChildThree /> 
     ); 
    } 
} 

export class ChildThree extends React.Component { 
    constructor(props) { 
     super(props); 
    } 

    addEvent() { 
     // how to call loadData() function, which is included in the highest parent 
    } 

    render() { 
     return(
      <Button onCLick={this.addEvent.bind(this)} /> 
     ); 
    } 
} 

` ``

Ja. Wir können die Anfrage über die Requisiten an die Spitze der Hierarchie senden. Aber gibt es irgendeine Methode, die wir anders machen können, wenn wir nicht durch die Hierarchie gehen? Vielen Dank im Voraus.

Antwort

2

Der reaktive Weg ist, dass Sie Funktionalität von Elternkomponenten durch Requisiten übergeben. Du hast erwähnt, dass dies deine Antwort ist.

Im Grunde würde Ihr Elternteil eine Funktion haben, die es an ein Kind weitergibt, das es dann auslöst.

+0

Nachdem ich davon erfahren hatte, lernte ich, dass # flux Architektur hilft, dieses Problem zu lösen. –

+0

Hier ist ein [jsbin] (http://jsbin.com/yayatucowu/1/embed?js,output) des Konzepts aus [builtwithreact.com] (http://buildwithreact.com/tutorial/events) – cjsimon

Verwandte Themen