回答編集履歴

1

途中で切れていたのを補完

2018/07/07 04:12

投稿

taiki__t
taiki__t

スコア36

test CHANGED
@@ -14,11 +14,11 @@
14
14
 
15
15
 
16
16
 
17
- `this.ref`の名前が少しややこしいかもですね。これはこのコードではTextInputコンポーネントをさしているので`this.textInputRef`のような変数名まだわかりやすいかもしれないです。
17
+ `this.ref`の名前が少しややこしいかもですね。これはこのコードではTextInputコンポーネントをさしているので`this.textInputRef`のような変数名にする少しわかりやすいかもしれないです。
18
18
 
19
19
 
20
20
 
21
- それでrefはTextInputコンポーネントをさしていて、それに`_lastNativeText`というメソッドを呼び出しています。 ReactNativeでは慣習としてインターナルなAPIには`_`のprefixをつけています。そのことからこれはTextInputで定義されていてかつドキュメントには記載されていないと推測できます。なのでこの場合コードを見にきます。これです: [https://github.com/facebook/react-native/blob/master/Libraries/Components/TextInput/TextInput.js](https://github.com/facebook/react-native/blob/master/Libraries/Components/TextInput/TextInput.js)
21
+ それでrefはTextInputコンポーネントをさしていて、それに`_lastNativeText`というメソッドを呼び出しています。 ReactNativeでは慣習としてインターナルなAPIには`_`のprefixをつけています。そのことからこれはTextInputで定義されていてかつドキュメントには記載されていないと推測できます。なのでこの場合コードを見にきます。これです: [https://github.com/facebook/react-native/blob/master/Libraries/Components/TextInput/TextInput.js](https://github.com/facebook/react-native/blob/master/Libraries/Components/TextInput/TextInput.js)
22
22
 
23
23
 
24
24
 
@@ -26,15 +26,11 @@
26
26
 
27
27
 
28
28
 
29
-
30
-
31
- <④について>
32
-
33
- > 値を設定ているっぽいのですが、どこに渡されてるのでか???
29
+ 順番が前後ましたが、`this.props.onPress`を見たと思いま
34
30
 
35
31
 
36
32
 
37
- `this.props.onPress`とありますから、コンポーネントに渡されたpropsに存在するメソッドを呼んでいるとわかります。propsはコンポーネントが利用されているところでコンポーネントに渡されているはずです。ここでは`App`コンポーネントの` <TodoInput onPress={this._onPress} />`がそうです。`TodoInput`コンポーネントの`onPress`propsに`App`コンポーネントの`_onPress`メソッドが渡されています。
33
+ `this.props.onPress`とあるので、コンポーネントに渡されたpropsに存在するメソッドを呼んでいるとわかります。propsはコンポーネントが利用されているところでコンポーネントに渡されているはずです。ここでは`App`コンポーネントの` <TodoInput onPress={this._onPress} />`がそうです。`TodoInput`コンポーネントの`onPress`propsに`App`コンポーネントの`_onPress`メソッドが渡されています。
38
34
 
39
35
 
40
36
 
@@ -54,7 +50,11 @@
54
50
 
55
51
 
56
52
 
57
- とあるので、textを受け取ってconsoleに表示することをしています。ので、
53
+ とあるので、textを受け取ってconsoleに表示することをしています。
54
+
55
+
56
+
57
+ ので、buttonを押した後のフローはここまで
58
58
 
59
59
 
60
60
 
@@ -62,6 +62,30 @@
62
62
 
63
63
  2. `ToduInput`の`_onPress()`メソッド着火
64
64
 
65
- 3. `props`で渡された`onPress`が呼ばれる。そのとき`onPress`の引数は`TodoInput`ないの`TextInput`が保持する`text`
65
+ 3. `props`で渡された`onPress`が呼ばれる。そのとき`onPress`の引数は`TodoInput`の`TextInput`が保持する文字(`_lastNativeText`)
66
66
 
67
+ 4. `props`で渡された`onPress`は`App`コンポーネントの`_onPress`の呼び出しであり、
68
+
69
+ 5. それは渡された文字をコンソールに表示する
70
+
71
+
72
+
67
- 4.
73
+ となります。その後
74
+
75
+
76
+
77
+ 6.TextInputの文字を空にする
78
+
79
+
80
+
81
+ があります。6については下に書きます。
82
+
83
+
84
+
85
+ <④について>
86
+
87
+ > 値を設定しているっぽいのですが、どこに渡されているのですか???
88
+
89
+
90
+
91
+ 上述のように、`TextInput`のメソッドを呼び出しています。これについては`clear`という公開されているメソッドがあるのでそちらを呼び出したほうがコードの安定性は増すはずです。