回答編集履歴
2
stateの値を直接変化させるコードを修正
test
CHANGED
@@ -29,6 +29,6 @@
|
|
29
29
|
|
30
30
|
//新規データ受信用のsocketイベント
|
31
31
|
socket.on("test_emit_10s", (data) => {
|
32
|
-
setContextData(prev =>
|
32
|
+
setContextData(prev => [...prev.slice(1), data]);
|
33
33
|
});
|
34
34
|
```
|
1
最後の部分が嫌な感じだったので削除
test
CHANGED
@@ -19,7 +19,7 @@
|
|
19
19
|
また、useEffect関数の第二引数でcontextDataを指定していないので、useEffect内のcontextDataは初回実行時のものが利用され続けます。したがって実際にはcontextDataが更新されていたとしてもconsole画面には空の配列が表示されます。
|
20
20
|
|
21
21
|
余談ですが、連想配列とオブジェクトの配列は別物です。今回のはオブジェクトの配列ですよね。
|
22
|
-
あと、socketDataはなんのために用意されているのでしょうか。私なら下記のようにcontextDataにそのままデータを突っ込んでしまいます。
|
22
|
+
あと、socketDataはなんのために用意されているのでしょうか。私なら下記のようにcontextDataにそのままデータを突っ込んでしまいます。
|
23
23
|
|
24
24
|
```ts
|
25
25
|
//初期データ受信用のsocketイベント
|