2017-12-13 4 views
0

私はreduxで使用しようとしているパターンの問題。払い戻しのクラスにバインドされた後の不定期の発送

私は

const mapDispatchToProps = (dispatch) => { 
    return { 
     presenter: new Presenter(dispatch), 
    }; 
}; 

、以下のようにAA mapDispatchToPropsを持っていると私のプレゼンターのコンストラクタは以下のようになります。

constructor(dispatch) { 
     this.dispatcher = dispatch; 
    } 

私はコンストラクタで、それが設定されています後、それの値をチェックすると、すべてがありますよくただし、後でメソッドがそれを使用しようとすると、ディスパッチの値はundefinedになります。私は

let dispatch; 
class Presenter { 
    constructor(dispatcher) { 
     dispatch = dispatcher.bind(this) 
    } 
} 

すなわち

、クラス外VARに保存した場合

私も、最初のコンストラクタ内.bind()を使用してみましたが、それは未定義になってきて続けて!

答えて

0

クラスメソッドの形式であった:

constructor(dispatch) { 
    this.dispatch = dispatch; 
    this.someMethod = this.someMethod.bind(this); 
} 

someMethod() { 
    //do stuff 
} 

彼らは束縛自分のthisのスコープを持っていることを意味している...私は、次のようなコンストラクタ内の個々のメソッドを結合する必要があると思います彼らは、周囲のクラスから自分のコンテキストを取るよう

それとも

someMethod =() => dispatch(/* an action */); 
すなわち、=>の機能にそれらを回します
関連する問題