質問編集履歴

3

誤字を修正

2020/05/31 02:02

投稿

mune92283498
mune92283498

スコア11

test CHANGED
File without changes
test CHANGED
@@ -50,7 +50,7 @@
50
50
 
51
51
  ```
52
52
 
53
- ### Javascript
53
+ ### 資源
54
54
 
55
55
  #### Memo.js
56
56
 
@@ -188,7 +188,7 @@
188
188
 
189
189
  どうやらmapで作成した配列の値が見つからずエラーになっているみたいなんですが、
190
190
 
191
- エラー箇所の「Memo.js」と「Iindex.js」を見直してみたものの解決に至らず...
191
+ エラー箇所の「Memo.js」と「index.js」を見直してみたものの解決に至らず...
192
192
 
193
193
  mapメソッドあたりのコードをみても構文が間違っているようには見えないんですが、うまく値が受け渡しできていのでしょうか?
194
194
 

2

指摘内容を反映したコードを追記

2020/05/31 02:02

投稿

mune92283498
mune92283498

スコア11

test CHANGED
File without changes
test CHANGED
@@ -194,7 +194,7 @@
194
194
 
195
195
 
196
196
 
197
- ### 追記
197
+ ## 追記
198
198
 
199
199
  ### Store.js
200
200
 
@@ -397,3 +397,65 @@
397
397
  export default createStore(memoReducer);
398
398
 
399
399
  ```
400
+
401
+ ## PG修正
402
+
403
+ ### Store.js
404
+
405
+ ```js
406
+
407
+ import { createStore } from "redux";
408
+
409
+
410
+
411
+ const initData = {
412
+
413
+ data: [{ message: "sample data", created: new Date() }],
414
+
415
+ message: "please type message",
416
+
417
+ mode: "default",
418
+
419
+ fdata: [],
420
+
421
+ };
422
+
423
+
424
+
425
+ // レデューサー
426
+
427
+ export function memoReducer(state = initData, action) {
428
+
429
+ switch (action.type) {
430
+
431
+ case "ADD":
432
+
433
+ return addReduce(state, action);
434
+
435
+
436
+
437
+ case "DELETE":
438
+
439
+ return deleteReduce(state, action);
440
+
441
+
442
+
443
+ case "FIND":
444
+
445
+ return findReduce(state, action);
446
+
447
+
448
+
449
+ # actionが不明な場合はstateをそのまま返す必要があるため、default処理を追記
450
+
451
+ default:
452
+
453
+ return state;
454
+
455
+ }
456
+
457
+ }
458
+
459
+ # 以下略
460
+
461
+ ```

1

Store.jsを追記しました。

2020/05/31 01:59

投稿

mune92283498
mune92283498

スコア11

test CHANGED
File without changes
test CHANGED
@@ -191,3 +191,209 @@
191
191
  エラー箇所の「Memo.js」と「Iindex.js」を見直してみたものの解決に至らず...
192
192
 
193
193
  mapメソッドあたりのコードをみても構文が間違っているようには見えないんですが、うまく値が受け渡しできていのでしょうか?
194
+
195
+
196
+
197
+ ### 追記
198
+
199
+ ### Store.js
200
+
201
+ ```js
202
+
203
+ import { createStore } from "redux";
204
+
205
+
206
+
207
+ const initData = {
208
+
209
+ data: [{ message: "sample data", created: new Date() }],
210
+
211
+ message: "please type message",
212
+
213
+ mode: "default",
214
+
215
+ fdata: [],
216
+
217
+ };
218
+
219
+
220
+
221
+ // レデューサー
222
+
223
+ export function memoReducer(state = initData, action) {
224
+
225
+ switch (action.type) {
226
+
227
+ case "ADD":
228
+
229
+ return addReduce(state, action);
230
+
231
+
232
+
233
+ case "DELETE":
234
+
235
+ return deleteReduce(state, action);
236
+
237
+
238
+
239
+ case "FIND":
240
+
241
+ return findReduce(state, action);
242
+
243
+ }
244
+
245
+ }
246
+
247
+
248
+
249
+ // レデュースアクション
250
+
251
+
252
+
253
+ // メモ追加のレデュース処理
254
+
255
+ function addReduce(state, action) {
256
+
257
+ let data = {
258
+
259
+ message: action.message,
260
+
261
+ created: new Date(),
262
+
263
+ };
264
+
265
+ let newdata = state.data.slice();
266
+
267
+ newdata.unshift(data);
268
+
269
+ return {
270
+
271
+ data: newdata,
272
+
273
+ message: "Added!",
274
+
275
+ mode: "default",
276
+
277
+ fdata: [],
278
+
279
+ };
280
+
281
+ }
282
+
283
+
284
+
285
+ // メモ検索のレデュース処理
286
+
287
+ function findReduce(state, action) {
288
+
289
+ let f = action.find;
290
+
291
+ let fdata = [];
292
+
293
+ state.data.forEach((value) => {
294
+
295
+ if (value.message.indexOf(f) >= 0) {
296
+
297
+ fdata.push(value);
298
+
299
+ }
300
+
301
+ });
302
+
303
+ return {
304
+
305
+ data: state.data,
306
+
307
+ message: 'find "' + f + '":',
308
+
309
+ mode: "find",
310
+
311
+ fdata: fdata,
312
+
313
+ };
314
+
315
+ }
316
+
317
+
318
+
319
+ // メモ削除のレデュース処理
320
+
321
+ function deleteReduce(state, action) {
322
+
323
+ let newdata = state.data.slice();
324
+
325
+ newdata.splice(action.index, 1);
326
+
327
+ return {
328
+
329
+ data: newdata,
330
+
331
+ message: 'delete "' + action.index + '":',
332
+
333
+ mode: "delete",
334
+
335
+ fdata: [],
336
+
337
+ };
338
+
339
+ }
340
+
341
+
342
+
343
+ // アクションクリエーター
344
+
345
+
346
+
347
+ // メモ追加のアクション
348
+
349
+ export function addMemo(text) {
350
+
351
+ return {
352
+
353
+ type: "ADD",
354
+
355
+ message: text,
356
+
357
+ };
358
+
359
+ }
360
+
361
+
362
+
363
+ // メモ削除のアクション
364
+
365
+ export function deleteMemo(num) {
366
+
367
+ return {
368
+
369
+ type: "DELETE",
370
+
371
+ index: num,
372
+
373
+ };
374
+
375
+ }
376
+
377
+
378
+
379
+ // メモ検索のアクション
380
+
381
+ export function findMemo(text) {
382
+
383
+ return {
384
+
385
+ type: "FIND",
386
+
387
+ find: text,
388
+
389
+ };
390
+
391
+ }
392
+
393
+
394
+
395
+ // ストアを作成
396
+
397
+ export default createStore(memoReducer);
398
+
399
+ ```