回答編集履歴

13

テキスト修正

2019/12/07 14:38

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -2,11 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- フォームが入力の受付中であるか、または確認の表示中であるかという2状態を、redux state の `mode` というプロパティで保持させる意図と思われましたが、そうだとすると、`Sample`の`this.state` にも `mode`を重複して持つ必要はないと思われます。
5
+ フォームが入力の受付中であるか、または確認の表示中であるかという2状態を、redux state の `mode` というプロパティで保持させる意図と思われましたが、そうだとすると、`Sample`の`this.state` にも `mode`を重複して持つ必要はないと思われます。 `this.state` に `mode` を持たせなくても、`Sample` では
6
-
7
-
8
-
9
- `Sample` では
10
6
 
11
7
  ```javascript
12
8
 
@@ -14,11 +10,11 @@
14
10
 
15
11
  ```
16
12
 
17
- によってreduxとconnectされていることにより、`this.props` に redux の state が入ってきますので、これを使えばよいかと思います。
13
+ によってreduxとconnectされることにより、`this.props` に redux の state が入ってきますので、これを使えばよいす。
18
-
19
-
20
-
14
+
15
+
16
+
21
- 下記にいくつかの`Sample`の修正版を挙げます。これらは、リデューサーが`pageReducer` しかなく、Reduxのstoreが以下
17
+ この考え方にそって、下記にいくつかの`Sample`の修正版を挙げます。これらは、リデューサーが`pageReducer` しかなく、Reduxのstoreが以下
22
18
 
23
19
 
24
20
 

12

テキスト修正

2019/12/07 14:38

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -166,9 +166,7 @@
166
166
 
167
167
  でも良いかと思います。
168
168
 
169
-
170
-
171
- 下のサンプル
169
+ 記に動作確認用のサンプルを作りました。
172
170
 
173
171
 
174
172
 
@@ -176,7 +174,7 @@
176
174
 
177
175
 
178
176
 
179
- は、ご質問に挙げられているコードを転記して各ファイルを作成し、`Sample` については上記の各修正版を追加し、足りないものは当方で補ったものです。
177
+ これは、ご質問に挙げられているコードを転記して各ファイルを作成し、`Sample` については上記の各修正版を追加しindex.js と comfirmForm.jsは当方で適当に作成して補ったものです。
180
178
 
181
179
 
182
180
 

11

テキスト修正

2019/12/07 14:30

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- フォームが入力の受付中であるか、または確認の表示中であるかという2状態を、redux state の `mode` というプロパティで保持させる意図と思われましたが、そうだとすると、`Sample`の`this.state` にも `mode`を持つ必要はないと思われます。
5
+ フォームが入力の受付中であるか、または確認の表示中であるかという2状態を、redux state の `mode` というプロパティで保持させる意図と思われましたが、そうだとすると、`Sample`の`this.state` にも `mode`を重複して持つ必要はないと思われます。
6
6
 
7
7
 
8
8
 

10

テキスト修正

2019/12/07 14:24

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -200,7 +200,7 @@
200
200
 
201
201
 
202
202
 
203
- - `mode` は Redux state にあるのだから、`Sample` の this.state に重複して持つ必要は無いのでは?
203
+ - `mode` は Redux state にあるのだから、`Sample` の this.state に重複して持つ必要は無いのでは?
204
204
 
205
205
 
206
206
 

9

テキスト修正

2019/12/07 13:56

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -32,7 +32,7 @@
32
32
 
33
33
 
34
34
 
35
- ### sample.js
35
+ ### sample.js (Sampleクラス修正版その1)
36
36
 
37
37
 
38
38
 
@@ -86,7 +86,7 @@
86
86
 
87
87
 
88
88
 
89
- ### sample2.js
89
+ ### sample2.js (Sampleクラス修正版その2)
90
90
 
91
91
  ```jsx
92
92
 
@@ -132,7 +132,7 @@
132
132
 
133
133
 
134
134
 
135
- ### sample3.js
135
+ ### sample3.js (Sampleクラス修正版その3)
136
136
 
137
137
  ```jsx
138
138
 
@@ -196,11 +196,11 @@
196
196
 
197
197
 
198
198
 
199
- 具体的なコードの修正方法はさておき、この回答の主旨は
199
+ 具体的なコードの修正方法はさておき、この回答の主旨は、初めに書いたとおり
200
-
201
-
202
-
200
+
201
+
202
+
203
- - `mode` は Redux state にあるのだから、`Sample` の this.state に持つ必要は無いのでは?
203
+ - `mode` は Redux state にあるのだから、`Sample` の this.state に重複して持つ必要は無いのでは?
204
204
 
205
205
 
206
206
 

8

テキスト修正

2019/12/07 13:54

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -180,11 +180,11 @@
180
180
 
181
181
 
182
182
 
183
- 以上、参考になれば幸いです。
183
+
184
-
185
-
186
-
184
+
185
+
186
+
187
- 上記の回答では、冒頭に書いたとおり、リデューサーが `pageReducer` しかなく、
187
+ なお上記に挙げたコードは、冒頭に書いたとおり、リデューサーが `pageReducer` しかなく、
188
188
 
189
189
  ```javascript
190
190
 

7

テキスト修正

2019/12/07 13:04

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -14,9 +14,21 @@
14
14
 
15
15
  ```
16
16
 
17
- によってreduxとconnectされていることにより、`this.props` に redux の state が入ってきますので、これを使って、以下でよいかと思います。
17
+ によってreduxとconnectされていることにより、`this.props` に redux の state が入ってきますので、これを使えばよいかと思います。
18
+
19
+
20
+
18
-
21
+ 下記にいくつかの`Sample`の修正版を挙げます。これらは、リデューサーが`pageReducer` しかなく、Reduxのstoreが以下
22
+
23
+
24
+
19
-
25
+ ```javascript
26
+
27
+ const store = createStore(pageReducer);
28
+
29
+ ```
30
+
31
+ によって作られていることを前提にしています。
20
32
 
21
33
 
22
34
 
@@ -172,11 +184,7 @@
172
184
 
173
185
 
174
186
 
175
- ### 補足
176
-
177
-
178
-
179
- 上記の回答では、codesandboxのサンプルある index.js のとおり、リデューサーが `pageReducer` しかなく、
187
+ 上記の回答では、冒頭書いたとおり、リデューサーが `pageReducer` しかなく、
180
188
 
181
189
  ```javascript
182
190
 
@@ -184,7 +192,7 @@
184
192
 
185
193
  ```
186
194
 
187
- という形で `store`を作っていすが、tajihiroさんの実際のコードでは、いくつかのリデューサーを`combineReducers`していると思います。その場合は、 各コンポーネントに入ってくる redux state から mode を取り出すために、もうひとつプロパティが必要になると思われます。そこは適宜、ご自身のコードに合わせて頂ければと思います。
195
+ によって `store`を作っている想定のものですが、tajihiroさんの実際のコードでは、いくつかのリデューサーを`combineReducers`していると思います。その場合は、 各コンポーネントに入ってくる redux state から mode を取り出すために、もうひとつプロパティが必要になると思われます。そこは適宜、ご自身のコードに合わせて頂ければと思います。
188
196
 
189
197
 
190
198
 

6

テキスト修正

2019/12/07 12:59

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -169,3 +169,31 @@
169
169
 
170
170
 
171
171
  以上、参考になれば幸いです。
172
+
173
+
174
+
175
+ ### 補足
176
+
177
+
178
+
179
+ 上記の回答では、codesandboxのサンプルにある index.js のとおり、リデューサーが `pageReducer` しかなく、
180
+
181
+ ```javascript
182
+
183
+ const store = createStore(pageReducer);
184
+
185
+ ```
186
+
187
+ という形で `store`を作っていますが、tajihiroさんの実際のコードでは、いくつかのリデューサーを`combineReducers`していると思います。その場合は、 各コンポーネントに入ってくる redux state から mode を取り出すために、もうひとつプロパティが必要になると思われます。そこは適宜、ご自身のコードに合わせて頂ければと思います。
188
+
189
+
190
+
191
+ 具体的なコードの修正方法はさておき、この回答の主旨は
192
+
193
+
194
+
195
+ - `mode` は Redux state にあるのだから、`Sample` の this.state にも持つ必要は無いのでは?
196
+
197
+
198
+
199
+ ということになります

5

テキスト修正

2019/12/07 12:41

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -156,7 +156,15 @@
156
156
 
157
157
 
158
158
 
159
+ 以下のサンプル
160
+
161
+
162
+
159
- - **動作確認用CodePen: **[https://codesandbox.io/s/q227869-3q91g](https://codesandbox.io/s/q227869-3q91g)
163
+ - **動作確認用サンプル: **[https://codesandbox.io/s/q227869-3q91g](https://codesandbox.io/s/q227869-3q91g)
164
+
165
+
166
+
167
+ は、ご質問に挙げられているコードを転記して各ファイルを作成して、`Sample` については上記の各修正版を追加し、足りないものは当方で補ったものです。
160
168
 
161
169
 
162
170
 

4

テキスト修正

2019/12/07 12:31

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- フォームが入力の受付中であるか、または確認の表示中であるかという2状態を、redux state の `mode` というプロパティで保持していので、`Sample` `this.state` の中さらに重複して `mode`を持つ必要はないと思われます。
5
+ フォームが入力の受付中であるか、または確認の表示中であるかという2状態を、redux state の `mode` というプロパティで保持させる意図だと思われまたが、そうだとす、`Sample`の`this.state` に `mode`を持つ必要はないと思われます。
6
6
 
7
7
 
8
8
 

3

テキスト修正

2019/12/07 12:28

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- フォームが入力の受付中であるか、または確認の表示中であるかという2状態を、redux state の `mode` というプロパティで保持しているので、`Sample` の `this.state` の中にさらに `mode`を持つ必要はないと思われます。
5
+ フォームが入力の受付中であるか、または確認の表示中であるかという2状態を、redux state の `mode` というプロパティで保持しているので、`Sample` の `this.state` の中にさらに重複して `mode`を持つ必要はないと思われます。
6
6
 
7
7
 
8
8
 
@@ -14,7 +14,7 @@
14
14
 
15
15
  ```
16
16
 
17
- によってreduxとconnectされているので、`this.props` に redux state が入ってきますので、以下でよいかと思います。
17
+ によってreduxとconnectされていることにより、`this.props` に redux state が入ってきますので、これを使って、以下でよいかと思います。
18
18
 
19
19
 
20
20
 

2

テキスト修正

2019/12/07 12:23

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -116,7 +116,7 @@
116
116
 
117
117
  ```
118
118
 
119
- たは
119
+ さらに短いコードで済せるとすれば、
120
120
 
121
121
 
122
122
 
@@ -134,13 +134,11 @@
134
134
 
135
135
 
136
136
 
137
- const Sample = ({ mode }) => {
137
+ const Sample = ({ mode }) => (
138
138
 
139
- const Form = mode === 'input' ? InputForm : ConfirmForm;
139
+ mode === 'input' ? <InputForm /> : <ConfirmForm />
140
140
 
141
- return <Form />;
142
-
143
- }
141
+ )
144
142
 
145
143
 
146
144
 

1

テキスト修正

2019/12/07 12:14

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -116,6 +116,44 @@
116
116
 
117
117
  ```
118
118
 
119
+ または
120
+
121
+
122
+
123
+ ### sample3.js
124
+
125
+ ```jsx
126
+
127
+ import React from "react";
128
+
129
+ import { connect } from "react-redux";
130
+
131
+ import InputForm from "./inputForm";
132
+
133
+ import ConfirmForm from "./comfirmForm";
134
+
135
+
136
+
137
+ const Sample = ({ mode }) => {
138
+
139
+ const Form = mode === 'input' ? InputForm : ConfirmForm;
140
+
141
+ return <Form />;
142
+
143
+ }
144
+
145
+
146
+
147
+ export default connect((state)=>state)(Sample);
148
+
149
+
150
+
151
+
152
+
153
+ ```
154
+
155
+
156
+
119
157
  でも良いかと思います。
120
158
 
121
159