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

質問編集履歴

3

誤字を修正

2020/05/31 02:02

投稿

mune92283498
mune92283498

スコア11

title CHANGED
File without changes
body CHANGED
@@ -24,7 +24,7 @@
24
24
  12 | <App />
25
25
  13 | </Provider>,
26
26
  ```
27
- ### Javascript
27
+ ### 資源
28
28
  #### Memo.js
29
29
  ```js
30
30
  import React, { Component } from 'react';
@@ -93,7 +93,7 @@
93
93
  // serviceWorker.unregister();
94
94
  ```
95
95
  どうやらmapで作成した配列の値が見つからずエラーになっているみたいなんですが、
96
- エラー箇所の「Memo.js」と「Iindex.js」を見直してみたものの解決に至らず...
96
+ エラー箇所の「Memo.js」と「index.js」を見直してみたものの解決に至らず...
97
97
  mapメソッドあたりのコードをみても構文が間違っているようには見えないんですが、うまく値が受け渡しできていのでしょうか?
98
98
 
99
99
  ## 追記

2

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

2020/05/31 02:02

投稿

mune92283498
mune92283498

スコア11

title CHANGED
File without changes
body CHANGED
@@ -96,7 +96,7 @@
96
96
  エラー箇所の「Memo.js」と「Iindex.js」を見直してみたものの解決に至らず...
97
97
  mapメソッドあたりのコードをみても構文が間違っているようには見えないんですが、うまく値が受け渡しできていのでしょうか?
98
98
 
99
- ### 追記
99
+ ## 追記
100
100
  ### Store.js
101
101
  ```js
102
102
  import { createStore } from "redux";
@@ -197,4 +197,35 @@
197
197
 
198
198
  // ストアを作成
199
199
  export default createStore(memoReducer);
200
+ ```
201
+ ## PG修正
202
+ ### Store.js
203
+ ```js
204
+ import { createStore } from "redux";
205
+
206
+ const initData = {
207
+ data: [{ message: "sample data", created: new Date() }],
208
+ message: "please type message",
209
+ mode: "default",
210
+ fdata: [],
211
+ };
212
+
213
+ // レデューサー
214
+ export function memoReducer(state = initData, action) {
215
+ switch (action.type) {
216
+ case "ADD":
217
+ return addReduce(state, action);
218
+
219
+ case "DELETE":
220
+ return deleteReduce(state, action);
221
+
222
+ case "FIND":
223
+ return findReduce(state, action);
224
+
225
+ # actionが不明な場合はstateをそのまま返す必要があるため、default処理を追記
226
+ default:
227
+ return state;
228
+ }
229
+ }
230
+ # 以下略
200
231
  ```

1

Store.jsを追記しました。

2020/05/31 01:59

投稿

mune92283498
mune92283498

スコア11

title CHANGED
File without changes
body CHANGED
@@ -94,4 +94,107 @@
94
94
  ```
95
95
  どうやらmapで作成した配列の値が見つからずエラーになっているみたいなんですが、
96
96
  エラー箇所の「Memo.js」と「Iindex.js」を見直してみたものの解決に至らず...
97
- mapメソッドあたりのコードをみても構文が間違っているようには見えないんですが、うまく値が受け渡しできていのでしょうか?
97
+ mapメソッドあたりのコードをみても構文が間違っているようには見えないんですが、うまく値が受け渡しできていのでしょうか?
98
+
99
+ ### 追記
100
+ ### Store.js
101
+ ```js
102
+ import { createStore } from "redux";
103
+
104
+ const initData = {
105
+ data: [{ message: "sample data", created: new Date() }],
106
+ message: "please type message",
107
+ mode: "default",
108
+ fdata: [],
109
+ };
110
+
111
+ // レデューサー
112
+ export function memoReducer(state = initData, action) {
113
+ switch (action.type) {
114
+ case "ADD":
115
+ return addReduce(state, action);
116
+
117
+ case "DELETE":
118
+ return deleteReduce(state, action);
119
+
120
+ case "FIND":
121
+ return findReduce(state, action);
122
+ }
123
+ }
124
+
125
+ // レデュースアクション
126
+
127
+ // メモ追加のレデュース処理
128
+ function addReduce(state, action) {
129
+ let data = {
130
+ message: action.message,
131
+ created: new Date(),
132
+ };
133
+ let newdata = state.data.slice();
134
+ newdata.unshift(data);
135
+ return {
136
+ data: newdata,
137
+ message: "Added!",
138
+ mode: "default",
139
+ fdata: [],
140
+ };
141
+ }
142
+
143
+ // メモ検索のレデュース処理
144
+ function findReduce(state, action) {
145
+ let f = action.find;
146
+ let fdata = [];
147
+ state.data.forEach((value) => {
148
+ if (value.message.indexOf(f) >= 0) {
149
+ fdata.push(value);
150
+ }
151
+ });
152
+ return {
153
+ data: state.data,
154
+ message: 'find "' + f + '":',
155
+ mode: "find",
156
+ fdata: fdata,
157
+ };
158
+ }
159
+
160
+ // メモ削除のレデュース処理
161
+ function deleteReduce(state, action) {
162
+ let newdata = state.data.slice();
163
+ newdata.splice(action.index, 1);
164
+ return {
165
+ data: newdata,
166
+ message: 'delete "' + action.index + '":',
167
+ mode: "delete",
168
+ fdata: [],
169
+ };
170
+ }
171
+
172
+ // アクションクリエーター
173
+
174
+ // メモ追加のアクション
175
+ export function addMemo(text) {
176
+ return {
177
+ type: "ADD",
178
+ message: text,
179
+ };
180
+ }
181
+
182
+ // メモ削除のアクション
183
+ export function deleteMemo(num) {
184
+ return {
185
+ type: "DELETE",
186
+ index: num,
187
+ };
188
+ }
189
+
190
+ // メモ検索のアクション
191
+ export function findMemo(text) {
192
+ return {
193
+ type: "FIND",
194
+ find: text,
195
+ };
196
+ }
197
+
198
+ // ストアを作成
199
+ export default createStore(memoReducer);
200
+ ```