2016-08-31 3 views
0

Ich werde keine Daten an eine andere Komponente übergeben oder auf Funktionen von einer Komponente zugreifen und sie in einer anderen Komponente ausführen. Komponente A nimmt einige Daten aus der Datenbank. Komponente B bearbeitet einige Daten in der Datenbank. Wenn ich einige Daten in Komponente B bearbeite, brauche ich Funktion (Daten holen) in Komponente A, um erneut ausgeführt zu werden. Ich muss die Liste in Komponente A aktualisieren.React Native: Ausführen einer Funktion in einer Komponente aus einer anderen Komponente

Ich habe eine Registerkarte, eine Registerkarte listet Daten auf, andere Registerkarte kann Daten bearbeiten. nachdem ich die Daten bearbeitet habe, wenn ich auf die erste Registerkarte gehe, werden immer noch die alten Daten angezeigt. Ein Ansatz könnte sein, die Registerkarte bei jeder Auswahl erneut zu laden.

Ich benutze react-native-router-flux, aber ich bin noch neu dazu.

Ist es möglich? irgendwelche Lösungen bitte?

Antwort

0

Ich fand die Lösung, Ich habe ein paar Komponenten. Die Komponente A, B und C tatsächlich jede Komponente ist eine Lasche (TabBar in iOS)

Jedes Mal, wenn Benutzer einige Änderungen in der Komponente C macht, ich brauche Komponente A und B.

In Komponente C zu aktualisieren, wenn Benutzer macht die Änderung, bin Aufruf i Actions.refresh wie folgt aus:

/// Component C 
 
updated(){ 
 
    //// Update database 
 
    Actions.componentA(); 
 
    Actions.refresh({somekey: 'True'}); 
 
    Actions.componentB(); 
 
    Actions.refresh({somekey: 'True'}); 
 
    Actions.componentC(); 
 
    Actions.refresh({somekey: 'True'}); 
 
} 
 
/// So i first call Actions.componentA then i call Actions.refresh to send some props to each component. 
 

 
/// in each component i added componentwillreceive update. when it receives new props, i'm calling the fetch function again. and setting some random state to make the component reload. 
 

 
componentWillReceiveProps() { 
 
     this.fetchData(); 
 
     this.setState({ 
 
     somekey: 'yes' 
 
     }); 
 
    }

Verwandte Themen