回答編集履歴

1

{}つける

2017/11/24 11:58

投稿

raccy
raccy

スコア21735

test CHANGED
@@ -56,7 +56,7 @@
56
56
 
57
57
 
58
58
 
59
- それを解決する手段の一つとして、`{(e) => this.handleClick(e)}`があったのです。こちらは`=>`によって`this`が束縛されるため、`this`がこのオブジェクトであるところの関数というものをonClickに渡します。ですので、コールバックでも`this`が何か別のものになるのを防ぎます。他の解決方法として`this.handleClick.bind(this)`とする方法や、コンストラクタで`this.handleClick = this.handleClick.bind(this);`としておくという方法があります。そして、第4の方法として、該当コードであるClass Fieldsを用いた記法が(まだ正式では無いが)できるようになったと言うことです。
59
+ それを解決する手段の一つとして、`{(e) => this.handleClick(e)}`があったのです。こちらは`=>`によって`this`が束縛されるため、`this`がこのオブジェクトであるところの関数というものをonClickに渡します。ですので、コールバックでも`this`が何か別のものになるのを防ぎます。他の解決方法として`{this.handleClick.bind(this)}`とする方法や、コンストラクタで`this.handleClick = this.handleClick.bind(this);`としておくという方法があります。そして、第4の方法として、該当コードであるClass Fieldsを用いた記法が(まだ正式では無いが)できるようになったと言うことです。
60
60
 
61
61
 
62
62
 
@@ -64,13 +64,13 @@
64
64
 
65
65
 
66
66
 
67
- 1. アロー関数`=>`で囲って渡す。
67
+ 1. アロー関数`=>`で囲って渡す。`{(e) => this.handleClick(e)}`
68
68
 
69
- 2. `bind(this)`して渡す。
69
+ 2. `bind(this)`して渡す。`{this.handleClick.bind(this)}`
70
70
 
71
- 3. コンストラクタで`bind(this)`しておく。
71
+ 3. コンストラクタで`bind(this)`しておく。`this.handleClick = this.handleClick.bind(this);`
72
72
 
73
- 4. Class Fieldsでアロー関数を使う。
73
+ 4. Class Fieldsでアロー関数を使う。`handleClick = (e) => {...};`
74
74
 
75
75
 
76
76