2016-12-04 6 views
2

I-Funktion haben sie ein Versprechen, dessen Wert hat iWie in einer anderen Funktion eine Variable oder einen Wert einer Funktion für den Zugriff auf

in einer anderen Funktion verwenden möchten
Submit: function (e) { 
     e.preventDefault(); 

     var email = this.refs.email.value; 
     var pass = this.refs.pass.value; 

     if (email && pass !== '') { 
      const auth = firebase.auth(); 
      const promise = auth.signInWithEmailAndPassword(email, pass); 
      promise.catch(e => { console.log(e.message) }); 
      promise.then(() => { 
       console.log('Logged in'); 
      }) 

     } 
    } 

Jetzt möchte ich dieses e.message Objekt verwenden in meiner anderen Funktion unten:

renderError: function() { 
        if (error) { 
         <Error custom{//here i want to use that e.message}/> 
    } 
} 
+0

ist 'renderError' eine Methode derselben Klasse, die' Submit' Methode hat? – Hitmands

+0

ja sie sind in der gleichen Klasse –

Antwort

0

Wie Sie gesagt haben, weil das Verfahren zur gleichen Klasse der Submit gehört Sie es über this beziehen ...

class LoginForm { 
    submit() { 
    let 
     email = '[email protected]', 
     pass = '1235' 
    ; 


    return firebase 
     .auth() 
     .signInWithEmailAndPassword(email, pass) 
     .then(
     this.renderSuccess.bind(this), 
     this.renderError.bind(this) 
    ); 
    } 

    renderError(error) { console.log('error', error); } 
    renderError(response) { console.log('success', response); } 
} 
+0

Keine Notwendigkeit, in diesem Fall zu binden. – dfsq

+0

Wenn Sie nicht binden, verlieren Sie die Fähigkeit, auf die Komponente verweisen ... Sie müssen immer binden. – Hitmands

+0

Nein, in diesem Fall Fehlermeldung wird direkt übergeben, und kann dann von 'Error' Komponente verwendet werden, so ja - sieht aus wie es gibt keine Notwendigkeit zu binden. – dfsq

Verwandte Themen