回答編集履歴

2

id -> key に訂正

2020/12/31 02:44

投稿

hoshi-takanori
hoshi-takanori

スコア7899

test CHANGED
@@ -112,11 +112,11 @@
112
112
 
113
113
  {fields.map(field =>
114
114
 
115
- <select id={field.key} onChange={e => updateFilter(field.key, e.target.value)}>
115
+ <select key={field.key} onChange={e => updateFilter(field.key, e.target.value)}>
116
116
 
117
117
  {field.options.map(value =>
118
118
 
119
- <option id={value} value={value}>{value}</option>
119
+ <option key={value} value={value}>{value}</option>
120
120
 
121
121
  )}
122
122
 
@@ -164,7 +164,7 @@
164
164
 
165
165
 
166
166
 
167
- 追記。allData の生成もコードでできすが、ベタ書きの方がわかりやすいですね。
167
+ 追記。allData の生成もコードでできて、field が増えても対応可能ですが、ベタ書きの方がわかりやすいですね。
168
168
 
169
169
 
170
170
 

1

追記

2020/12/31 02:44

投稿

hoshi-takanori
hoshi-takanori

スコア7899

test CHANGED
@@ -157,3 +157,23 @@
157
157
  export default App;
158
158
 
159
159
  ```
160
+
161
+
162
+
163
+ ---
164
+
165
+
166
+
167
+ 追記。allData の生成もコードでできますが、ベタ書きの方がわかりやすいですね。
168
+
169
+
170
+
171
+ ```js
172
+
173
+ const allData = fields.reduce((acc, field) => acc.flatMap(row =>
174
+
175
+ field.options.map(value => ({ ...row, [field.key]: value })
176
+
177
+ )), [{}]).map((row, index) => ({ ...row, id: index }));
178
+
179
+ ```