質問編集履歴

4

誤字脱字

2020/04/17 01:33

投稿

good_morning
good_morning

スコア61

test CHANGED
File without changes
test CHANGED
@@ -78,7 +78,9 @@
78
78
 
79
79
 
80
80
 
81
+
82
+
81
- '''
83
+ ```Javascript
82
84
 
83
85
  const list = [];
84
86
 
@@ -232,4 +234,6 @@
232
234
 
233
235
  }
234
236
 
237
+
238
+
235
- '''
239
+ ```

3

ソースの追記

2020/04/17 01:33

投稿

good_morning
good_morning

スコア61

test CHANGED
@@ -1 +1 @@
1
- Nodeのダイアログ画面のチェックボックスに関する問題
1
+ Reactのダイアログ画面のチェックボックスに関する問題
test CHANGED
@@ -1,38 +1,38 @@
1
- Nodeのダイアログ画面のチェックボックスに関する問題で質問があります。
1
+ Reactのダイアログ画面のチェックボックスに関する問題で質問があります。
2
-
2
+
3
- 現在、Nodeのダイアログ画面のチェックボックスを作成しているのですが、その仕様は次のとおりです。
3
+ 現在、Reactのダイアログ画面のチェックボックスを作成しているのですが、その仕様は次のとおりです。
4
-
5
-
6
-
4
+
5
+
6
+
7
- ①ダイアログ画面のconstructorで各チェックボックスのチェック済み(true or false)のデータを初期化(true)する。
7
+ ①ダイアログ画面のconstructorで各チェックボックスのチェック有無(true or false)のデータを初期化(true)する。
8
-
9
-
10
-
8
+
9
+
10
+
11
- ②ダイアログ画面のcomponentDidMount()でlocalStorageに保存している各チェックボックスのチェック済み(true or false)のデータを読み込む。
11
+ ②ダイアログ画面のcomponentDidMount()でlocalStorageに保存している各チェックボックスのチェック有無(true or false)のデータを読み込む。
12
-
13
-
14
-
12
+
13
+
14
+
15
- ③localStorageに保存している各チェックボックスのチェック済み(true or false)のデータがあれば、そのデータでダイアログ画面の各チェックボックスのチェック済み(true or false)のデータを更新する。
15
+ ③localStorageに保存している各チェックボックスのチェック有無(true or false)のデータがあれば、そのデータでダイアログ画面の各チェックボックスのチェック有無(true or false)のデータを更新する。
16
-
17
-
18
-
16
+
17
+
18
+
19
- ④localStorageに保存している各チェックボックスのチェック済み(true or false)のデータが無いならば、ダイアログ画面の各チェックボックスのチェック済み(true or false)のデータは初期化したままにする。
19
+ ④localStorageに保存している各チェックボックスのチェック有無(true or false)のデータが無いならば、ダイアログ画面の各チェックボックスのチェック有無(true or false)のデータは初期化したままにする。
20
-
21
-
22
-
20
+
21
+
22
+
23
- ⑤ダイアログ画面のCancelボタンを押すと、ダイアロブ画面で更新したチェックボックスのチェック済み(true or false)のデータはそのままにしておいて、localStorageに保存している各チェックボックスのチェック済み(true or false)のデータを更新しないでチェックボックスを閉じる。
23
+ ⑤ダイアログ画面のCancelボタンを押すと、ダイアロブ画面で更新したチェックボックスのチェック有無(true or false)のデータはそのままにしておいて、localStorageに保存している各チェックボックスのチェック有無(true or false)のデータを更新しないでチェックボックスを閉じる。
24
-
25
-
26
-
24
+
25
+
26
+
27
- ⑥ダイアログ画面のUpdateボタンを押すと、ダイアロブ画面で更新したチェックボックスのチェック済み(true or false)のデータはそのままにしておいて、componentDidUpdate(prevProps)関数を実行してlocalStorageに保存している各チェックボックスのチェック済み(true or false)のデータを更新してチェックボックスを閉じる。
27
+ ⑥ダイアログ画面のUpdateボタンを押すと、ダイアロブ画面で更新したチェックボックスのチェック有無(true or false)のデータはそのままにしておいて、componentDidUpdate(prevProps)関数を実行してlocalStorageに保存している各チェックボックスのチェック有無(true or false)のデータを更新してチェックボックスを閉じる。
28
28
 
29
29
 
30
30
 
31
31
  上記のロジックでダイアログ画面のチェックボックスを作成すれば、
32
32
 
33
- ・localStorageに保存している各チェックボックスのチェック済み(true or false)のデータがダイアログ画面を開いたときのチェックボックススのチェック済み(true or false)データに反映する。
33
+ ・localStorageに保存している各チェックボックスのチェック有無(true or false)のデータがダイアログ画面を開いたときのチェックボックススのチェック有無(true or false)データに反映する。
34
-
34
+
35
- ・Cancelボタンを押せば、localStorageに保存している各チェックボックスのチェック済み(true or false)のデータが更新視されない。
35
+ ・Cancelボタンを押せば、localStorageに保存している各チェックボックスのチェック有無(true or false)のデータが更新視されない。
36
36
 
37
37
  となるので、意図したものができるはずです。
38
38
 
@@ -42,11 +42,11 @@
42
42
 
43
43
 
44
44
 
45
- 問題①Cancelボタンを押してもlocalStorageに保存している各チェックボックスのチェック済み(true or false)のデータが更新されてしまう。
45
+ 問題①Cancelボタンを押してもlocalStorageに保存している各チェックボックスのチェック有無(true or false)のデータが更新されてしまう。
46
-
47
-
48
-
46
+
47
+
48
+
49
- 問題②ダイアログ画面でUpdateした後、再度ダイアログ画面を立ち上げると、原画面をリロードしたときに立ち上げたダイアログ画面が表示されてしまう。つまり、localStorageに保存している各チェックボックスのチェック済み(true or false)のデータがダイアログ画面の各チェックボックスに反映しない。
49
+ 問題②ダイアログ画面でUpdateした後、再度ダイアログ画面を立ち上げると、原画面をリロードしたときに立ち上げたダイアログ画面が表示されてしまう。つまり、localStorageに保存している各チェックボックスのチェック有無(true or false)のデータがダイアログ画面の各チェックボックスに反映しない。
50
50
 
51
51
 
52
52
 
@@ -66,4 +66,170 @@
66
66
 
67
67
  ・OS:Windows10
68
68
 
69
- Node:v10.5
69
+ React;不明
70
+
71
+
72
+
73
+ 尚、ダイアログ画面の該当部分のソースコードを編集して掲載します。
74
+
75
+ ソースコードについて質問があれば、コメントください。
76
+
77
+ それでは、よろしくお願いします。
78
+
79
+
80
+
81
+ '''
82
+
83
+ const list = [];
84
+
85
+ const color = [];
86
+
87
+
88
+
89
+ class EditPlanningsumDialog extends Component {
90
+
91
+ constructor(props) {
92
+
93
+ super(props);
94
+
95
+ this.componentDidMount = this.componentDidMount.bind(this);
96
+
97
+ this.componentDidUpdate = this.componentDidUpdate.bind(this);
98
+
99
+ this.state = {
100
+
101
+ };
102
+
103
+ aaaaaaaa.map(label => {
104
+
105
+ this.state["xxxxxxxx_" + label.model_name] = true;
106
+
107
+ });
108
+
109
+ bbbbbbbb.map(label => {
110
+
111
+ this.state["yyyyyyyy_" + label.model_name] = true;
112
+
113
+ });
114
+
115
+ }
116
+
117
+
118
+
119
+ componentDidMount(){
120
+
121
+ for(let key in this.state ){
122
+
123
+ const value = JSON.parse(window.localStorage.getItem(key));
124
+
125
+ if (value != null){
126
+
127
+ this.state[key] = value;
128
+
129
+ }else{
130
+
131
+ window.localStorage.setItem(key, this.state[key]);
132
+
133
+ }
134
+
135
+ };
136
+
137
+
138
+
139
+ for (let i in aaaaaaaa) {
140
+
141
+ list.push(
142
+
143
+ <FormControlLabel
144
+
145
+ control={
146
+
147
+ <Checkbox
148
+
149
+ id={"xxxxxxxx_" + aaaaaaaa[i].model_name}
150
+
151
+ name="items"
152
+
153
+ value={"xxxxxxxx_" + aaaaaaaa[i].model_name}
154
+
155
+ color="primary"
156
+
157
+ defaultChecked={this.state["xxxxxxxx_" + aaaaaaaa[i].model_name]}
158
+
159
+ onChange={(e, defaultChecked) => this.state["xxxxxxxx_" + aaaaaaaa[i].model_name] = defaultChecked}
160
+
161
+ />
162
+
163
+ }
164
+
165
+ label={aaaaaaaa[i].caption}
166
+
167
+ />
168
+
169
+ );
170
+
171
+ }
172
+
173
+
174
+
175
+ for (let i in bbbbbbbb) {
176
+
177
+ color.push(
178
+
179
+ <FormControlLabel
180
+
181
+ control={
182
+
183
+ <Checkbox
184
+
185
+ id={"yyyyyyyy_" + bbbbbbbb[i].model_name}
186
+
187
+ name="items"
188
+
189
+ value={"yyyyyyyy_" + bbbbbbbb[i].model_name}
190
+
191
+ color="primary"
192
+
193
+ defaultChecked={this.state["yyyyyyyy_" + bbbbbbbb[i].model_name]}
194
+
195
+ onChange={(e, defaultChecked) => this.state["yyyyyyyy_" + bbbbbbbb[i].model_name] = defaultChecked}
196
+
197
+ />
198
+
199
+ }
200
+
201
+ label={aaaaaaaa[i].caption}
202
+
203
+ />
204
+
205
+ );
206
+
207
+ }
208
+
209
+ }
210
+
211
+
212
+
213
+ componentDidUpdate(prevProps){
214
+
215
+ for(let key in this.state ){
216
+
217
+ window.localStorage.setItem(key, this.state[key]);
218
+
219
+ };
220
+
221
+ }
222
+
223
+
224
+
225
+ handleCheckboxUpdate() {
226
+
227
+ for(let key in this.state ){
228
+
229
+ this.setState = ({key: this.state[key]});
230
+
231
+ }
232
+
233
+ }
234
+
235
+ '''

2

整形

2020/04/17 01:30

投稿

good_morning
good_morning

スコア61

test CHANGED
File without changes
test CHANGED
@@ -44,6 +44,8 @@
44
44
 
45
45
  問題①Cancelボタンを押してもlocalStorageに保存している各チェックボックスのチェック済み(true or false)のデータが更新されてしまう。
46
46
 
47
+
48
+
47
49
  問題②ダイアログ画面でUpdateした後、再度ダイアログ画面を立ち上げると、原画面をリロードしたときに立ち上げたダイアログ画面が表示されてしまう。つまり、localStorageに保存している各チェックボックスのチェック済み(true or false)のデータがダイアログ画面の各チェックボックスに反映しない。
48
50
 
49
51
 

1

誤字脱字

2020/04/16 20:45

投稿

good_morning
good_morning

スコア61

test CHANGED
File without changes
test CHANGED
@@ -20,11 +20,11 @@
20
20
 
21
21
 
22
22
 
23
- ダイアログ画面のCancelボタンを押すと、ダイアロブ画面で更新したチェックボックスのチェック済み(true or false)のデータはそのままにしておいて、localStorageに保存している各チェックボックスのチェック済み(true or false)のデータを更新しないでチェックボックスを閉じる。
23
+ ダイアログ画面のCancelボタンを押すと、ダイアロブ画面で更新したチェックボックスのチェック済み(true or false)のデータはそのままにしておいて、localStorageに保存している各チェックボックスのチェック済み(true or false)のデータを更新しないでチェックボックスを閉じる。
24
24
 
25
25
 
26
26
 
27
- ダイアログ画面のUpdateボタンを押すと、ダイアロブ画面で更新したチェックボックスのチェック済み(true or false)のデータはそのままにしておいて、componentDidUpdate(prevProps)関数を実行してlocalStorageに保存している各チェックボックスのチェック済み(true or false)のデータを更新してチェックボックスを閉じる。
27
+ ダイアログ画面のUpdateボタンを押すと、ダイアロブ画面で更新したチェックボックスのチェック済み(true or false)のデータはそのままにしておいて、componentDidUpdate(prevProps)関数を実行してlocalStorageに保存している各チェックボックスのチェック済み(true or false)のデータを更新してチェックボックスを閉じる。
28
28
 
29
29
 
30
30