2017-02-01 6 views
0

ここに私のコンストラクタで:カスタムコンポーネントには、この方法を渡そうとしReactなぜバインドされたメソッドがレンダリングで呼び出されていますか?

constructor(props) { 
    super(props); 
    this.moveGroup = this.moveGroup.bind(this); 
} 

とIM:

render() { 
    return(
    <Group 
     moveGroup={this.moveGroup} 
    /> 
) 
} 

はなぜ、これが自動的にメソッドを呼び出すことですか?

私はバインディングとそれが動作しないという組み合わせをたくさん試しました。レンダリングでバインドすべきではないことも読んだことがありますが、これを行わなければこれを動作させることはできません。私が読んだブログでは、コンストラクタでバインドするように指示しています。

+0

子コンポーネント(グループはurの場合)とその親コン​​ポーネントを貼り付けることができますか? –

+0

'Group'コンポーネントも投稿できますか? – absolutezero

+0

私は結局自分でそれを理解しましたが、あなたは、グループ構成要素に欠陥があり、私が物事を結びつけた方法ではないという点で正しくありました。私のポストのバインディングはきれいだった – pizzae

答えて

0

私のグループのそれがあった、レンダリングで

onClick={this.props.moveGroup(start, finish)}/>} 

私がしなければならなかったすべてがバインドした:

onClick={() => this.props.moveGroup(start, finish)}/>} 

編集:私がメソッド自体呼んでいたようですので、私は持っていました自動的に呼び出されないように関数にバインドする

+0

同じ問題が発生しているかもしれない読者のためにこれがなぜ機能するのかを説明すると良いでしょう – Pineda

関連する問題