Reactのthisに関するTips


Reactの仮想DOMでイベントから関数を呼び出すとき、bindしないとthisでクラス関数が呼び出せないです。

バインドしないでもthisが使える書き方もあったのでメモ。

 

まずbindする例。

クリックイベントにクラス関数を設定します。

bindしないとundefinedになってstateにアクセスできないで焦ることがありました。

 

メソッドにアロー関数を使えばthisを束縛しないのでクラスそのものを参照します。

 

アクセス出来たりできなかったり混乱しましたがこんな感じで使い分けます。

 

  • 基本:アロー関数を使う
  • 処理上thisが上書きされる場合:bindする
  • 複数のthisが必要になる場合:self等に避難させる

 

そもそもクラスメソッドってこんな書き方できなかった気がするけど、何故か出来るのはReactのおかげなんだろうか。


コメントを残す

メールアドレスが公開されることはありません。