0

auszulösen Ich bin seit 3 ​​Tagen mit diesem Problem festgefahren. Ich habe meine App kürzlich zu Firebase und React Native migriert. Alles funktioniert wie ein Charm, mit Ausnahme der Benutzerauthentifizierung. Ich versuche, mein Navigator, wenn sich der Benutzer anmeldet auslösen So die folgende Methode Ich verwende.Native reagieren | Firebase-Authentifizierung | Unmöglich, Navigator

componentDidMount() { 
    firebase.auth().onAuthStateChanged(function(user) { 
    if (user) { 
     global.userID = user.uid 
     alert(‘test’)   

     var naviRef = this.refs.NavRef 
     naviRef.push({ 
      ident: ‘Home’ 
     }) 
    } else { 
     // No user is signed in. 
    } 
}); 
} 

Ich erhalte die alert (‚test‘), aber mein Navi tut nichts. Wenn ich den naviRef.push außerhalb des "onAuthStateChanged" setze, funktioniert es. Ich habe keine Ahnung, was ich jetzt tun kann. Gibt es eine bessere Lösung als einen Navigator?

Antwort

2

Ich denke, das den Trick tun sollten:

componentDidMount() { 
    firebase.auth().onAuthStateChanged((user) => { 
    if (user) { 
     global.userID = user.uid 
     alert(‘test’)   

     var naviRef = this.refs.NavRef 
     naviRef.push({ 
      ident: ‘Home’ 
     }) 
    } else { 
     // No user is signed in. 
    } 
}); 
} 

Nun ist die this innerhalb der Funktion korrekt ist als Pfeil Funktion lexikalische Bindung dies tut. Daher können Sie ordnungsgemäß auf die this.refs.NavRef

+0

zugreifen, löste mein Problem! Vielen Dank –