teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

6

テキスト修正

2018/12/20 23:16

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -21,7 +21,7 @@
21
21
  と、代入しようとしているからです。
22
22
 
23
23
 
24
- 次に、本題の「親コンポーネントのstateを変更したい」についてですが、親のほうで `this.state` を更新するメソッドを作って、それを子コンポーネントに props で渡ばよいです。
24
+ 次に、本題の「親コンポーネントのstateを変更したい」についてですが、親のほうで `this.state` を更新するメソッドを作って、それを子コンポーネントに props で渡し、子のほうで、それを使えばよいです。
25
25
 
26
26
  具体例として、以下のようなサンプルを以下に作成しました。
27
27
 

5

テキスト修正

2018/12/20 23:16

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -23,17 +23,16 @@
23
23
 
24
24
  次に、本題の「親コンポーネントのstateを変更したい」についてですが、親のほうで `this.state` を更新するメソッドを作って、それを子コンポーネントに props で渡せばよいです。
25
25
 
26
- 参考ためサンプルを以下に作成しました。
26
+ 具体例として、以下ようなサンプルを以下に作成しました。
27
27
 
28
- 作成したのは、親コンポーネント `App` の `this.state.mainIndex` を、子コンポーネント `MainIndexBox` で表示、変更するというものです
28
+ - 親コンポーネント `App` の `this.state.mainIndex` を、子コンポーネント `MainIndexBox` で表示、変更します。
29
-
30
- このサンプルでは、
29
+  
31
-
32
30
  - `this.state.mainIndex`を変えるというテーマにフォーカスするために、`App` は `this.state.items` を持っていません。
31
+  
32
+ - `MainIndexBox` は、`App`の `this.state.mainIndex` を表示、変更するだけなので、`MainIndexBox`自体は state を持つ必要がないため、Functional Component にしています。
33
33
 
34
- - また、`MainIndexBox` 、`App` `this.state.mainIndex` 表示、変更するだけなので、`MainIndexBox`自体は state を持つ必要がないため、Functional Component にしています
34
+ 以下上記仕様実装したコード一例す。(他も書き方はあるでょう
35
35
 
36
-
37
36
  ### App
38
37
  ```JSX
39
38
  class App extends React.Component {

4

テキスト修正

2018/12/20 23:12

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -25,8 +25,15 @@
25
25
 
26
26
  参考のためサンプルを以下に作成しました。
27
27
 
28
- 作成したのは、親コンポーネント `App` の `this.state.mainIndex` を、子コンポーネント `MainIndexBox` で表示、変更するというものです。このサンプルでは、 `App`の `this.state.mainIndex`を変えるというテーマにフォーカスするために、`App` は `this.state.items` を持っていません。また、子である `MainIndexBox` は、親の `this.state.mainIndex` を表示、変更するだけなので、`MainIndexBox`自体は state を持つ必要がないことを明示するため、Functional Component にしています。
28
+ 作成したのは、親コンポーネント `App` の `this.state.mainIndex` を、子コンポーネント `MainIndexBox` で表示、変更するというものです。
29
29
 
30
+ このサンプルでは、
31
+
32
+ - `this.state.mainIndex`を変えるというテーマにフォーカスするために、`App` は `this.state.items` を持っていません。
33
+
34
+ - また、`MainIndexBox` は、`App`の `this.state.mainIndex` を表示、変更するだけなので、`MainIndexBox`自体は state を持つ必要がないため、Functional Component にしています。
35
+
36
+
30
37
  ### App
31
38
  ```JSX
32
39
  class App extends React.Component {

3

テキスト修正

2018/12/20 23:03

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -8,12 +8,12 @@
8
8
  Syntax error: "mainIndex" is read-only
9
9
  ```
10
10
 
11
- との、上記エラーが出た原因は、以下
11
+ とのことですが、上記エラー原因は、以下
12
12
 
13
13
  ```javascript
14
14
  const mainIndex = this.props.mainIndex
15
15
  ```
16
- にて `const` で定義した変数 `mainIndex` に、その2行下で
16
+ にて `const` で定義した変数 `mainIndex` に、その2行下で
17
17
 
18
18
  ```javascript
19
19
  mainIndex = item.number

2

テキスト修正

2018/12/20 12:53

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -25,7 +25,7 @@
25
25
 
26
26
  参考のためサンプルを以下に作成しました。
27
27
 
28
- 作成したのは、親コンポーネント `App` の `this.state.mainIndex` を、子コンポーネント `MainIndexBox` で表示、変更するというものです。`mainIndex`を変えるというテーマにフォーカスするために、`App` は `this.state.items` を持っていません。また、子である `MainIndexBox` は、親の `this.state.mainIndex` を表示、変更するだけなので、`MainIndexBox`自体は state を持つ必要がないので、Functional Component にしています。
28
+ 作成したのは、親コンポーネント `App` の `this.state.mainIndex` を、子コンポーネント `MainIndexBox` で表示、変更するというものです。このサンプルでは、 `App`の `this.state.mainIndex`を変えるというテーマにフォーカスするために、`App` は `this.state.items` を持っていません。また、子である `MainIndexBox` は、親の `this.state.mainIndex` を表示、変更するだけなので、`MainIndexBox`自体は state を持つ必要がないことを明示するため、Functional Component にしています。
29
29
 
30
30
  ### App
31
31
  ```JSX

1

テキスト修正

2018/12/20 11:24

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -65,7 +65,7 @@
65
65
 
66
66
  以下は、上記のコンポーネントを動かせるようにしたサンプルです。
67
67
 
68
- - [https://jsfiddle.net/jun68ykt/xywhvnf6/5/](https://jsfiddle.net/jun68ykt/xywhvnf6/5/)
68
+ - [https://jsfiddle.net/jun68ykt/xywhvnf6/6/](https://jsfiddle.net/jun68ykt/xywhvnf6/6/)
69
69
 
70
70
 
71
71
  これは、以下