2017-09-28 69 views
0

我有一個非常令人沮喪的問題。我把我在構造函數中這樣的變量:無法訪問在類構造函數中設置的變量

export class ChannelTransition{ 
    constructor(props) { 
     this.transitionHandler=props; 
    } 

    channelTransitionSetup(channelsList) { 
     console.log(this.transitionHandler.handleHeaderTransition);    
    } 
} 

,現在當我嘗試訪問變量集上構造得到了一個未定義。我知道它與範圍有關,但是如何在構造函數中訪問我的變量?

+2

確保你的'transitionHandler'有一個名爲'handleHeaderTransition'的屬性?否則這是正確的。 – Thusitha

+1

哪裏以及如何調用channelTransitionSetup? – estus

+0

'props'是否有任何名爲'handleHeaderTransition'的屬性?你調試了代碼嗎?在設置完'transitionHandler'的構造函數後,你得到了什麼值?在調用'this.transitionHandler.handleHeaderTransition'之前,你在'channelTransitionSetup'裏面爲'transitionHandler'獲取了什麼值? –

回答

1

這工作我出去:

class ChannelTransition{ 
     constructor(props) { 
      this.transitionHandler=props; 
     } 
     channelTransitionSetup(channelsList) { 
      console.log(this.transitionHandler.handleHeaderTransition); 

     } 

    } 


    let test = new ChannelTransition({handleHeaderTransition:'Ok!'}); 

    test.channelTransitionSetup(); 
/* This print 'Ok!' in console */ 

所以我不知道你有什麼問題。你能解釋你如何使用它?

+0

感謝您回答:這裏是我如何調用它:let channelTransition = new ChannelTransition(this.props.handleHeaderTransition); channelTransition.changeChannelOnScroll(channelNames);然後在changeChannelOnScroll我有this.channelTransitionSetup(channelsList); –

+0

此外,我只是簡化了上面的代碼,並有一個原因,我不直接使用channelTransitionSetup –

+0

我想我找到了問題。你的榜樣幫了我很多。所以我在對象層次結構中向下多了一層。相反,如果我這樣調用它,它會起作用:this.transitionHandler()而不是this.transitionHandler.handleHeaderTransition()。感謝您的幫助 –

相關問題