2017-09-28 7 views
0

非常に不満な問題があります。私は未定義の取得コンストラクタで設定し、その変数にアクセスしようとすると、クラスコンストラクタで設定された変数にアクセスできない

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

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

そして今:私はこのようなコンストラクタで私の変数を設定します。私はそれが範囲とは、sthを持っているが、私はどのように私の変数にアクセスすることができますコンストラクタで知っている?

+2

'transitionHandler'に' handleHeaderTransition'というプロパティがあることを確認しますか?それ以外の場合は正しいです。 – Thusitha

+1

そして、どのようにchannelTransitionSetupが呼び出されますか? – estus

+0

'props'は' handleHeaderTransition'という名前のプロパティを持っていますか?コードをデバッグしましたか? 'transitionHandler'のコンストラクタで、設定した値は何ですか? 'this.transitionHandler.handleHeaderTransition'を呼び出す前に、どの値が' transitionHandler'の 'channelTransitionSetup'の中に入っていますか? –

答えて

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.handleHeaderTransition()の代わりにthis.transitionHandler()が動作します。助けをありがとう –

関連する問題