回答編集履歴

16

テキスト追加

2020/03/15 00:51

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -26,13 +26,13 @@
26
26
 
27
27
 
28
28
 
29
- 下記に、上記の修正案による、修正前と修正後の差分を挙げておきます。
29
+ 上記の修正案による、修正前と修正後の差分を以下に挙げておきます。
30
-
31
-
32
-
33
-
34
-
30
+
31
+
32
+
33
+
34
+
35
- ### src/index.js (Sample)
35
+ ### Sample (src/index.js)
36
36
 
37
37
  ```diff
38
38
 
@@ -138,7 +138,7 @@
138
138
 
139
139
 
140
140
 
141
- ### src/FormDialog.jsx
141
+ ### FormDialog (src/FormDialog.jsx)
142
142
 
143
143
  ```diff
144
144
 

15

テキスト追加

2020/03/15 00:51

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- 親コンポーネントのstateに保持されている値を、子コンポーネントで変えるには、親コンポーネント側で、その値を変えるハンドラを用意して、これを子コンポーネントに prop 経由で渡し、子コンポーネントでそのハンドラを使うというのがお決まりのやり方です。
5
+ 親コンポーネントのstateに保持されている値を、子コンポーネントで変えるには、親コンポーネント側で、その値を変えるハンドラを用意して、これを子コンポーネントに prop 経由で渡し、子コンポーネントでそのハンドラを使うというのがお決まりのやり方です。これは Hooks が導入されてからも変わりません。
6
6
 
7
7
 
8
8
 

14

テキスト追加

2020/03/15 00:34

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -22,7 +22,7 @@
22
22
 
23
23
 
24
24
 
25
- 上記の**修正前**のほうは、ご質問に挙げられているコードを転記したもので、これに適宜コードを追加して、**修正後**のコードを作りました。**修正後**では、親コンポーネントの「入力された名前:」の部分に、ダイアログから入力された値が表示さるようにしてい
25
+ 上記の**修正前**のほうは、ご質問に挙げられているコードを転記したもので、これに適宜コードを追加して、**修正後**のコードを作りました。**修正後**では、親コンポーネントに[Card](https://material-ui.com/components/cards/) を追加しここに子コンポーネントのダイアログから入力された名前を表示さるようにしました
26
26
 
27
27
 
28
28
 

13

テキスト追加

2020/03/15 00:33

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -26,249 +26,225 @@
26
26
 
27
27
 
28
28
 
29
- 下記に修正後のコードを挙げておきます。
30
-
31
-
32
-
33
-
34
-
35
- ### index.js
36
-
37
- ```jsx
38
-
39
- import React, { useState } from "react";
40
-
41
- import ReactDOM from "react-dom";
42
-
43
- import Grid from "@material-ui/core/Grid";
44
-
45
- import Card from "@material-ui/core/Card";
46
-
47
- import CardContent from "@material-ui/core/CardContent";
48
-
49
- import { makeStyles } from "@material-ui/styles";
50
-
51
- import FormDialog from "./FormDialog";
52
-
53
-
54
-
55
- const useStyles = makeStyles({
56
-
57
- parent: {},
58
-
59
- root_: {},
60
-
61
- result: {
62
-
63
- backgroundColor: "#eee",
64
-
65
- marginBottom: 30
66
-
67
- },
68
-
69
- name: {
70
-
71
- fontWeight: "bold",
72
-
73
- color: "darkblue"
74
-
75
- }
76
-
77
- });
78
-
79
-
80
-
81
- function Sample() {
82
-
83
- const classes = useStyles();
84
-
85
- const [name, setName] = useState("");
86
-
87
-
88
-
89
- return (
90
-
91
- <div className={classes.parent}>
92
-
93
- <Grid container className={classes.root_} spacing={2}>
94
-
95
- <Grid item xs={12}>
96
-
97
- <Card className={classes.result}>
98
-
99
- <CardContent>
100
-
101
- 入力された名前:
102
-
103
- <span className={classes.name}>{name}</span>
104
-
105
- </CardContent>
106
-
107
- </Card>
108
-
109
- </Grid>
110
-
111
- <Grid item xs={12}>
112
-
113
- <Grid container justify="center" spacing={2}>
114
-
115
- <Grid key={0} item>
116
-
117
- <FormDialog defaultValue={name} onSubmit={setName} />
118
-
119
- </Grid>
120
-
121
- </Grid>
122
-
123
- </Grid>
124
-
125
- </Grid>
126
-
127
- </div>
128
-
129
- );
130
-
131
- }
132
-
133
-
134
-
135
- ReactDOM.render(<Sample />, document.getElementById("root"));
136
-
137
-
29
+ 下記に、上記の修正案による、修正前と修正後の差分を挙げておきます。
30
+
31
+
32
+
33
+
34
+
35
+ ### src/index.js (Sample)
36
+
37
+ ```diff
38
+
39
+ --- before/src/index.js 2020-03-15 00:23:00.000000000 +0900
40
+
41
+ +++ after/src/index.js 2020-03-15 00:10:28.000000000 +0900
42
+
43
+ @@ -1,23 +1,43 @@
44
+
45
+ -import React from "react";
46
+
47
+ +import React, { useState } from "react";
48
+
49
+ import ReactDOM from "react-dom";
50
+
51
+ import Grid from "@material-ui/core/Grid";
52
+
53
+ +import Card from "@material-ui/core/Card";
54
+
55
+ +import CardContent from "@material-ui/core/CardContent";
56
+
57
+ import { makeStyles } from "@material-ui/styles";
58
+
59
+ import FormDialog from "./FormDialog";
60
+
61
+
62
+
63
+ const useStyles = makeStyles({
64
+
65
+ parent: {},
66
+
67
+ - root_: {}
68
+
69
+ + root_: {},
70
+
71
+ + result: {
72
+
73
+ + backgroundColor: "#eee",
74
+
75
+ + marginBottom: 30
76
+
77
+ + },
78
+
79
+ + name: {
80
+
81
+ + fontWeight: "bold",
82
+
83
+ + color: "darkblue"
84
+
85
+ + }
86
+
87
+ });
88
+
89
+
90
+
91
+ function Sample() {
92
+
93
+ const classes = useStyles();
94
+
95
+ + const [name, setName] = useState("");
96
+
97
+ +
98
+
99
+ return (
100
+
101
+ <div className={classes.parent}>
102
+
103
+ <Grid container className={classes.root_} spacing={2}>
104
+
105
+ <Grid item xs={12}>
106
+
107
+ + <Card className={classes.result}>
108
+
109
+ + <CardContent>
110
+
111
+ + 入力された名前:
112
+
113
+ + <span className={classes.name}>{name}</span>
114
+
115
+ + </CardContent>
116
+
117
+ + </Card>
118
+
119
+ + </Grid>
120
+
121
+ + <Grid item xs={12}>
122
+
123
+ <Grid container justify="center" spacing={2}>
124
+
125
+ <Grid key={0} item>
126
+
127
+ - <FormDialog />
128
+
129
+ + <FormDialog defaultValue={name} onSubmit={setName} />
130
+
131
+ </Grid>
132
+
133
+ </Grid>
134
+
135
+ </Grid>
138
136
 
139
137
  ```
140
138
 
141
139
 
142
140
 
143
- ### FormDialog.jsx
144
-
145
- ```jsx
146
-
147
- import React from "react";
148
-
149
- import Button from "@material-ui/core/Button";
150
-
151
- import Dialog from "@material-ui/core/Dialog";
152
-
153
- import DialogTitle from "@material-ui/core/DialogTitle";
154
-
155
- import DialogContent from "@material-ui/core/DialogContent";
156
-
157
- import DialogContentText from "@material-ui/core/DialogContentText";
158
-
159
- import TextField from "@material-ui/core/TextField";
160
-
161
- import DialogActions from "@material-ui/core/DialogActions";
162
-
163
-
164
-
165
- export default function FormDialog({ defaultValue, onSubmit }) {
166
-
167
- const [open, setOpen] = React.useState(false);
168
-
169
- const inputRef = React.useRef(null);
170
-
171
-
172
-
173
- const handleClickOpen = () => {
174
-
175
- setOpen(true);
176
-
177
- };
178
-
179
-
180
-
181
- const handleCancel = () => {
182
-
183
- setOpen(false);
184
-
185
- };
186
-
187
-
188
-
189
- const handleSubmit = () => {
190
-
191
- onSubmit(inputRef.current.value);
192
-
193
- setOpen(false);
194
-
195
- };
196
-
197
-
198
-
199
- return (
200
-
201
- <div>
202
-
203
- <Button variant="outlined" color="primary" onClick={handleClickOpen}>
204
-
205
- add new member
206
-
207
- </Button>
208
-
209
- <Dialog
210
-
211
- open={open}
212
-
213
- onClose={handleCancel}
214
-
215
- aria-labelledby="form-dialog-title"
216
-
217
- >
218
-
219
- <DialogTitle id="form-dialog-title">名前登録</DialogTitle>
220
-
221
- <DialogContent>
222
-
223
- <DialogContentText>名前を記入してください</DialogContentText>
224
-
225
- <TextField
226
-
227
- autoFocus
228
-
229
- margin="dense"
230
-
231
- id="name"
232
-
233
- label="Name"
234
-
235
- type="email"
236
-
237
- fullWidth
238
-
239
- defaultValue={defaultValue}
240
-
241
- inputRef={inputRef}
242
-
243
- />
244
-
245
- </DialogContent>
246
-
247
- <DialogActions>
248
-
249
- <Button onClick={handleCancel} color="primary">
250
-
251
- Cancel
252
-
253
- </Button>
254
-
255
- <Button onClick={handleSubmit} color="primary">
256
-
257
- OK
258
-
259
- </Button>
260
-
261
- </DialogActions>
262
-
263
- </Dialog>
264
-
265
- </div>
266
-
267
- );
268
-
269
- }
270
-
271
-
141
+ ### src/FormDialog.jsx
142
+
143
+ ```diff
144
+
145
+ --- before/src/FormDialog.jsx 2020-03-15 00:23:00.000000000 +0900
146
+
147
+ +++ after/src/FormDialog.jsx 2020-03-15 00:10:28.000000000 +0900
148
+
149
+ @@ -7,14 +7,20 @@
150
+
151
+ import TextField from "@material-ui/core/TextField";
152
+
153
+ import DialogActions from "@material-ui/core/DialogActions";
154
+
155
+
156
+
157
+ -export default function FormDialog() {
158
+
159
+ +export default function FormDialog({ defaultValue, onSubmit }) {
160
+
161
+ const [open, setOpen] = React.useState(false);
162
+
163
+ + const inputRef = React.useRef(null);
164
+
165
+
166
+
167
+ const handleClickOpen = () => {
168
+
169
+ setOpen(true);
170
+
171
+ };
172
+
173
+
174
+
175
+ - const handleClose = () => {
176
+
177
+ + const handleCancel = () => {
178
+
179
+ + setOpen(false);
180
+
181
+ + };
182
+
183
+ +
184
+
185
+ + const handleSubmit = () => {
186
+
187
+ + onSubmit(inputRef.current.value);
188
+
189
+ setOpen(false);
190
+
191
+ };
192
+
193
+
194
+
195
+ @@ -25,7 +31,7 @@
196
+
197
+ </Button>
198
+
199
+ <Dialog
200
+
201
+ open={open}
202
+
203
+ - onClose={handleClose}
204
+
205
+ + onClose={handleCancel}
206
+
207
+ aria-labelledby="form-dialog-title"
208
+
209
+ >
210
+
211
+ <DialogTitle id="form-dialog-title">名前登録</DialogTitle>
212
+
213
+ @@ -38,13 +44,15 @@
214
+
215
+ label="Name"
216
+
217
+ type="email"
218
+
219
+ fullWidth
220
+
221
+ + defaultValue={defaultValue}
222
+
223
+ + inputRef={inputRef}
224
+
225
+ />
226
+
227
+ </DialogContent>
228
+
229
+ <DialogActions>
230
+
231
+ - <Button onClick={handleClose} color="primary">
232
+
233
+ + <Button onClick={handleCancel} color="primary">
234
+
235
+ Cancel
236
+
237
+ </Button>
238
+
239
+ - <Button onClick={handleClose} color="primary">
240
+
241
+ + <Button onClick={handleSubmit} color="primary">
242
+
243
+ OK
244
+
245
+ </Button>
246
+
247
+ </DialogActions>
272
248
 
273
249
  ```
274
250
 

12

テキスト追加

2020/03/15 00:28

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -2,11 +2,15 @@
2
2
 
3
3
 
4
4
 
5
+ 親コンポーネントのstateに保持されている値を、子コンポーネントで変えるには、親コンポーネント側で、その値を変えるハンドラを用意して、これを子コンポーネントに prop 経由で渡し、子コンポーネントでそのハンドラを使うというのがお決まりのやり方です。
6
+
7
+
8
+
5
- ご質問の例だと、親コンポーネントの状態として持つべき(ダイアログから入力される)名前の値と、それと変更するハンドラを`useState`で取得し、それらを子コンポーネントに渡して、子ではそれらを適切に使えばよいです。(つまり、material-uiのコンポーネントだからといって、特別な何かをする必要はないです。)
9
+ ご質問の例だと、親コンポーネント`Sample`の状態として持つべき(ダイアログから入力される)名前の値と、それと変更するハンドラを`useState`で取得し、それらを子コンポーネントに渡して、子ではそれらを適切に使えばよいです。
6
-
7
-
8
-
10
+
11
+
12
+
9
- 具体的な修正方法示すもとして、codesandboxに、ダイアログからの入力値を親コンポーネントに反映させる例を挙げました。
13
+ 具体的な修正、以下のcodesandboxに挙げました。
10
14
 
11
15
 
12
16
 
@@ -18,7 +22,7 @@
18
22
 
19
23
 
20
24
 
21
- 上記の**修正前**のほうは、ご質問に挙げられているコードを転記したもので、これに適宜コードを追加して、親コンポーネントのほうの「入力された名前:」の部分に、ダイアログから入力された値が反映されるようにしたものが、**修正後**のものになります。
25
+ 上記の**修正前**のほうは、ご質問に挙げられているコードを転記したもので、これに適宜コードを追加して、**修正後**のコードを作りました。**修正後**では、親コンポーネントの「入力された名前:」の部分に、ダイアログから入力された値が表示されるようにしています。
22
26
 
23
27
 
24
28
 

11

テキスト追加

2020/03/14 20:04

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- ご質問の例だと、親コンポーネントの状態として持つべき名前の値とそれと変更するハンドラをuseStateで取得し、それらを子コンポーネントに渡して、子ではそれらを適切に使えばよいです。(つまり、material-uiのコンポーネントだからといって、特別な何かをする必要はないです。)
5
+ ご質問の例だと、親コンポーネントの状態として持つべき、(ダイアログから入力される)名前の値とそれと変更するハンドラを`useState`で取得し、それらを子コンポーネントに渡して、子ではそれらを適切に使えばよいです。(つまり、material-uiのコンポーネントだからといって、特別な何かをする必要はないです。)
6
6
 
7
7
 
8
8
 

10

テキスト追加

2020/03/14 19:21

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -50,20 +50,24 @@
50
50
 
51
51
  const useStyles = makeStyles({
52
52
 
53
+ parent: {},
54
+
55
+ root_: {},
56
+
57
+ result: {
58
+
59
+ backgroundColor: "#eee",
60
+
61
+ marginBottom: 30
62
+
63
+ },
64
+
53
65
  name: {
54
66
 
55
67
  fontWeight: "bold",
56
68
 
57
69
  color: "darkblue"
58
70
 
59
- },
60
-
61
- result: {
62
-
63
- backgroundColor: "#eee",
64
-
65
- marginBottom: 30
66
-
67
71
  }
68
72
 
69
73
  });

9

テキスト追加

2020/03/14 19:20

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
 
4
4
 
5
- material-uiのコンポーネントだからといって、特別な何かをする必要はなく、ご質問の例だと、親コンポーネントの状態として持つべき名前の値とそれと変更するハンドラをuseStateで取得し、それらを子コンポーネントに渡して、子ではそれらを適切に使えばよいです。
5
+ ご質問の例だと、親コンポーネントの状態として持つべき名前の値とそれと変更するハンドラをuseStateで取得し、それらを子コンポーネントに渡して、子ではそれらを適切に使えばよいです。(つまり、material-uiのコンポーネントだからといって、特別な何かをする必要はないです。)
6
-
7
-
8
-
6
+
7
+
8
+
9
- 以下、codesandboxに、ダイアログからの入力値を親コンポーネントに反映させる例を挙げました。
9
+ 具体的な修正方法を示すものとして、codesandboxに、ダイアログからの入力値を親コンポーネントに反映させる例を挙げました。
10
10
 
11
11
 
12
12
 

8

テキスト追加

2020/03/14 19:06

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- material-uiのコンポーネントだからといって、特別何か普通と違うことをする必要はなく、ご質問の例だと、親コンポーネントで useState して、状態として持つべき名前の値とそれと変更するハンドラを作り、それらを子コンポーネントに渡して、子ではそれらを適切に使えばよいです。
5
+ material-uiのコンポーネントだからといって、特別何かをする必要はなく、ご質問の例だと、親コンポーネント状態として持つべき名前の値とそれと変更するハンドラをuseStateで取得し、それらを子コンポーネントに渡して、子ではそれらを適切に使えばよいです。
6
6
 
7
7
 
8
8
 

7

テキスト追加

2020/03/14 18:52

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
    
16
16
 
17
- - **修正後:** codesandbox- [Q247134 after](https://codesandbox.io/s/q247134-after-vi0pi)
17
+ - **修正後:** codesandbox - [Q247134 after](https://codesandbox.io/s/q247134-after-vi0pi)
18
18
 
19
19
 
20
20
 

6

テキスト追加

2020/03/14 18:27

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -10,11 +10,11 @@
10
10
 
11
11
 
12
12
 
13
- - **修正前:** codesandbox/[q247134-before](https://codesandbox.io/s/q247134-before-uqnuw)
13
+ - **修正前:** codesandbox - [Q247134 before](https://codesandbox.io/s/q247134-before-uqnuw)
14
14
 
15
15
    
16
16
 
17
- - **修正後:** codesandbox/[q247134-after](https://codesandbox.io/s/q247134-after-vi0pi)
17
+ - **修正後:** codesandbox- [Q247134 after](https://codesandbox.io/s/q247134-after-vi0pi)
18
18
 
19
19
 
20
20
 

5

テキスト追加

2020/03/14 18:27

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -10,11 +10,11 @@
10
10
 
11
11
 
12
12
 
13
- - **修正前:** [https://codesandbox.io/s/q247134-before-uqnuw](https://codesandbox.io/s/q247134-before-uqnuw)
13
+ - **修正前:** codesandbox/[q247134-before](https://codesandbox.io/s/q247134-before-uqnuw)
14
14
 
15
15
    
16
16
 
17
- - **修正後:** [https://codesandbox.io/s/q247134-after-vi0pi](https://codesandbox.io/s/q247134-after-vi0pi)
17
+ - **修正後:** codesandbox/[q247134-after](https://codesandbox.io/s/q247134-after-vi0pi)
18
18
 
19
19
 
20
20
 

4

テキスト追加

2020/03/14 18:25

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
 
8
8
 
9
- 以下に、ダイアログからの入力値を親コンポーネントに反映させる作例を挙げました。
9
+ 以下、codesandboxに、ダイアログからの入力値を親コンポーネントに反映させる作例を挙げました。
10
10
 
11
11
 
12
12
 
@@ -22,4 +22,248 @@
22
22
 
23
23
 
24
24
 
25
+ 下記に修正後のコードを挙げておきます。
26
+
27
+
28
+
29
+
30
+
31
+ ### index.js
32
+
33
+ ```jsx
34
+
35
+ import React, { useState } from "react";
36
+
37
+ import ReactDOM from "react-dom";
38
+
39
+ import Grid from "@material-ui/core/Grid";
40
+
41
+ import Card from "@material-ui/core/Card";
42
+
43
+ import CardContent from "@material-ui/core/CardContent";
44
+
45
+ import { makeStyles } from "@material-ui/styles";
46
+
47
+ import FormDialog from "./FormDialog";
48
+
49
+
50
+
51
+ const useStyles = makeStyles({
52
+
53
+ name: {
54
+
55
+ fontWeight: "bold",
56
+
57
+ color: "darkblue"
58
+
59
+ },
60
+
61
+ result: {
62
+
63
+ backgroundColor: "#eee",
64
+
65
+ marginBottom: 30
66
+
67
+ }
68
+
69
+ });
70
+
71
+
72
+
73
+ function Sample() {
74
+
75
+ const classes = useStyles();
76
+
77
+ const [name, setName] = useState("");
78
+
79
+
80
+
81
+ return (
82
+
83
+ <div className={classes.parent}>
84
+
85
+ <Grid container className={classes.root_} spacing={2}>
86
+
87
+ <Grid item xs={12}>
88
+
89
+ <Card className={classes.result}>
90
+
91
+ <CardContent>
92
+
93
+ 入力された名前:
94
+
95
+ <span className={classes.name}>{name}</span>
96
+
97
+ </CardContent>
98
+
99
+ </Card>
100
+
101
+ </Grid>
102
+
103
+ <Grid item xs={12}>
104
+
105
+ <Grid container justify="center" spacing={2}>
106
+
107
+ <Grid key={0} item>
108
+
109
+ <FormDialog defaultValue={name} onSubmit={setName} />
110
+
111
+ </Grid>
112
+
113
+ </Grid>
114
+
115
+ </Grid>
116
+
117
+ </Grid>
118
+
119
+ </div>
120
+
121
+ );
122
+
123
+ }
124
+
125
+
126
+
127
+ ReactDOM.render(<Sample />, document.getElementById("root"));
128
+
129
+
130
+
131
+ ```
132
+
133
+
134
+
135
+ ### FormDialog.jsx
136
+
137
+ ```jsx
138
+
139
+ import React from "react";
140
+
141
+ import Button from "@material-ui/core/Button";
142
+
143
+ import Dialog from "@material-ui/core/Dialog";
144
+
145
+ import DialogTitle from "@material-ui/core/DialogTitle";
146
+
147
+ import DialogContent from "@material-ui/core/DialogContent";
148
+
149
+ import DialogContentText from "@material-ui/core/DialogContentText";
150
+
151
+ import TextField from "@material-ui/core/TextField";
152
+
153
+ import DialogActions from "@material-ui/core/DialogActions";
154
+
155
+
156
+
157
+ export default function FormDialog({ defaultValue, onSubmit }) {
158
+
159
+ const [open, setOpen] = React.useState(false);
160
+
161
+ const inputRef = React.useRef(null);
162
+
163
+
164
+
165
+ const handleClickOpen = () => {
166
+
167
+ setOpen(true);
168
+
169
+ };
170
+
171
+
172
+
173
+ const handleCancel = () => {
174
+
175
+ setOpen(false);
176
+
177
+ };
178
+
179
+
180
+
181
+ const handleSubmit = () => {
182
+
183
+ onSubmit(inputRef.current.value);
184
+
185
+ setOpen(false);
186
+
187
+ };
188
+
189
+
190
+
191
+ return (
192
+
193
+ <div>
194
+
195
+ <Button variant="outlined" color="primary" onClick={handleClickOpen}>
196
+
197
+ add new member
198
+
199
+ </Button>
200
+
201
+ <Dialog
202
+
203
+ open={open}
204
+
205
+ onClose={handleCancel}
206
+
207
+ aria-labelledby="form-dialog-title"
208
+
209
+ >
210
+
211
+ <DialogTitle id="form-dialog-title">名前登録</DialogTitle>
212
+
213
+ <DialogContent>
214
+
215
+ <DialogContentText>名前を記入してください</DialogContentText>
216
+
217
+ <TextField
218
+
219
+ autoFocus
220
+
221
+ margin="dense"
222
+
223
+ id="name"
224
+
225
+ label="Name"
226
+
227
+ type="email"
228
+
229
+ fullWidth
230
+
231
+ defaultValue={defaultValue}
232
+
233
+ inputRef={inputRef}
234
+
235
+ />
236
+
237
+ </DialogContent>
238
+
239
+ <DialogActions>
240
+
241
+ <Button onClick={handleCancel} color="primary">
242
+
243
+ Cancel
244
+
245
+ </Button>
246
+
247
+ <Button onClick={handleSubmit} color="primary">
248
+
249
+ OK
250
+
251
+ </Button>
252
+
253
+ </DialogActions>
254
+
255
+ </Dialog>
256
+
257
+ </div>
258
+
259
+ );
260
+
261
+ }
262
+
263
+
264
+
265
+ ```
266
+
267
+
268
+
25
269
  以上参考になれば幸いです。

3

テキスト追加

2020/03/14 18:13

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
 
8
8
 
9
- 以下に作例を挙げました。
9
+ 以下に、ダイアログからの入力値を親コンポーネントに反映させる作例を挙げました。
10
10
 
11
11
 
12
12
 

2

テキスト追加

2020/03/14 17:20

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
    
16
16
 
17
- - **修正後:** [https://codesandbox.io/s/q247134-after-7wq55](https://codesandbox.io/s/q247134-after-7wq55)
17
+ - **修正後:** [https://codesandbox.io/s/q247134-after-vi0pi](https://codesandbox.io/s/q247134-after-vi0pi)
18
18
 
19
19
 
20
20
 

1

テキスト追加

2020/03/14 17:17

投稿

jun68ykt
jun68ykt

スコア9058

test CHANGED
@@ -18,7 +18,7 @@
18
18
 
19
19
 
20
20
 
21
- 上記の修正前のほうは、ご質問に挙げられているコードを転記したもので、これに適宜コードを追加して、親コンポーネントのほうの「入力された名前:」の部分に、ダイアログから入力された値が反映されるようにしたものす。
21
+ 上記の**修正前**のほうは、ご質問に挙げられているコードを転記したもので、これに適宜コードを追加して、親コンポーネントのほうの「入力された名前:」の部分に、ダイアログから入力された値が反映されるようにしたものが、**修正後**のものになります。
22
22
 
23
23
 
24
24