2016-12-04 34 views
2

我有發揮它有一個承諾,我想在其他功能使用如何訪問一個變量或其它函數內部函數的值

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'); 
      }) 

     } 
    } 

現在我想用這個e.message對象,其值我的另一個功能樓下里面:

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

是'renderError'是具有'Submit'方法的同一類的方法嗎? – Hitmands

+0

是的,他們是在同一類 –

回答

0

就像你說的,因爲該方法屬於同一類的Submit您可以通過this指它的...

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

在這種情況下不需要綁定。 – dfsq

+0

如果你沒有綁定你鬆散的引用組件的能力......你總是需要綁定。 – Hitmands

+0

不,在這種情況下,錯誤消息直接傳遞,然後可以由'Error'組件使用,所以是 - 看起來好像沒有必要綁定。 – dfsq

相關問題