私は以下のクラスを持っていますが、ここでバインドするのは混乱しています。クラスにはコンストラクタとsuper()がありません。なぜsetAllメソッドでバインドする必要がありますか?私はこのバインドを削除し、アプリケーションはまだ動作し、エラーはありません。バインドコンストラクタがない場合、これはクラスではオプションですか?
class PushScheduleActions {
/**
* Request all API
*/
fetchAll(params) {
return dispatch => {
dispatch(params);
PushScheduleApi.getAll(params)
.then(this.setAll.bind(this));//why use bind this here?
.catch(this.setError.bind(this));
}
}
setAll(data) {
return data;
}
}
何が必要ですか?それは上のケースでそれなしで働いた。私はバインドの使用が何であるかを知っています。なぜ私の場合になぜそれがなぜ必要なのか具体的に質問しています。 –
bind()は特定のオブジェクトに "this"の値を設定できるため、メソッドを再利用して関数をカリングするために使用されるbind()メソッドです。これは、「これ」が意図されていないことがあるため、非常に役立ちます。 – Sateesh