回答編集履歴

1

コメントを受けて追記しました

2021/04/15 08:01

投稿

nekoniki
nekoniki

スコア2411

test CHANGED
@@ -11,3 +11,77 @@
11
11
 
12
12
 
13
13
  これが正しいと思います。
14
+
15
+
16
+
17
+ # 追記
18
+
19
+
20
+
21
+ > useState([])で受け取ったdataという変数の型がObject型になってる
22
+
23
+
24
+
25
+ コメントで上記の指摘をいただいたのですが、
26
+
27
+ 同じような処理をするコードを書いたところ`useState`で受け取る`data`は配列のようでした(`setData([...data, ...sample])`が正常動作しているため)。
28
+
29
+
30
+
31
+ ```js
32
+
33
+ import { useState } from 'react';
34
+
35
+
36
+
37
+ // 追加されるであろう想定のデータ
38
+
39
+ const sample = [
40
+
41
+ {
42
+
43
+ foo: "foo",
44
+
45
+ hoge: "hoge"
46
+
47
+ }
48
+
49
+ ]
50
+
51
+
52
+
53
+ const Sample = () => {
54
+
55
+ const [data, setData] = useState([]);
56
+
57
+ return (
58
+
59
+ <div className="App">
60
+
61
+ <p>{data.length}</p>
62
+
63
+ <button onClick={() => {
64
+
65
+ setData([...data, ...sample])
66
+
67
+ }}>
68
+
69
+ data追加
70
+
71
+ </button>
72
+
73
+ </div>
74
+
75
+ );
76
+
77
+ }
78
+
79
+
80
+
81
+ export default Sample;
82
+
83
+ ```
84
+
85
+
86
+
87
+ その上でなのですが、`setData`以外で`data`が破損してしまうような処理を挟んでないでしょうか?