0

So kann ich die onEnter verwenden/onExit Methode an der Wurzel meiner App in den Router-Definitionen und es funktioniert völlig in Ordnung:onEnter/onExit Verfahren in Reaktion native Komponente (reagieren-native-Router-Flux)

<Scene key="arena" hideNavBar={true} onEnter={() => console.log("Entered")} component={ArenaPage} /> 

Gibt es eine Möglichkeit, dies innerhalb der Komponente selbst zu tun, so dass ich den lokalen Zustand aktualisieren kann ??

export default class ArenaPage extends Component { 
    onEnter() { 
     this.setState(...) 
    } 
    // Render blah blah blah... 
} 

nicht möglich, wenn Gibt es trotzdem componentWillUnmount auslösen, wenn sie von Szene (Aktionen. [Key])

Antwort

0

Einfache Komponente Verwendung componentWillUnmount, in der arenaPage Navigation entfernt.

componentWillUnmount() { 
    // add your code here. 
} 

Weil das bei der Navigation weg von der Komponente ausgeführt wird. Ich verwende es, um Fehlermeldungen zu entfernen. Und das funktioniert.

+0

Mein Problem ist gelöst, vergaß dies. componentWillUnmount funktioniert auch hier nicht, da die Komponente beim Übergang zur nächsten Szene mit 'Actions 'nicht umgangen wird. [key]' –

+0

@NathanHorrigan Wie haben Sie dieses Problem gelöst? Kannst du empfehlen? –

+0

@PorawatChimcherdsin Ich setze meinen Anfangszustand in 'componentWillMount' (für anfängliches Rendern) und dann, wenn ich von der Szene weg gehe, habe ich eine 'onDestroy'-Funktion, die ein Versprechen zurückgibt, das die Szene in ihren Anfangszustand zurücksetzt. –

0

Bitte überprüfen Sie neueste react-native-router-flux:beta.27, jetzt können Sie onEnter, onExit Methoden als Ihre Reaktionskomponente Methoden definieren.

class Home extends Component { 
    static onEnter() { 
    console.log('On Focus Enter') 
    }; 
    static onExit() { 
    console.log('On Focus Exit') 
    } 
} 
Verwandte Themen