質問編集履歴
2
追記①
test
CHANGED
File without changes
|
test
CHANGED
@@ -104,9 +104,23 @@
|
|
104
104
|
|
105
105
|
```
|
106
106
|
|
107
|
+
### 追記①
|
107
|
-
こ
|
108
|
+
以下のコードで実行したところ、setQuizeez()が2回実行され、配列に6つの要素が格納されてしまします。
|
109
|
+
setQuizeezは1度しか動かない認識ですが、なぜこのようなことが起こるのでしょうか?(開発環境のみuseeffectが2回動くようになっているみたいなのを見かけましたが、それが原因でしょうか?)
|
108
110
|
|
111
|
+
また、2回動くのはまだ分かるのですが、以下のコードにし、consoleを確認すると、ランダムで選出されたクイズ6つと、配列に格納されているクイズ6つが一致していないのですが、これはなぜでしょうか?
|
112
|
+
![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-07-22/b60be082-8d97-46db-8786-67e002c763be.jpeg)
|
113
|
+
```ts
|
109
|
-
|
114
|
+
const setQuizeez = () => {
|
115
|
+
const max = quizzes.length;
|
116
|
+
for (let i = 0; i < questinoNum; i++) {
|
117
|
+
var _q = quizzes[randomNumber(max)];
|
118
|
+
console.log(_q);
|
119
|
+
setQuizList((quizList) => [...quizList, _q]);
|
120
|
+
// setQuizList((quizList) => [...quizList, quizzes[randomNumber(max)]]);
|
121
|
+
}
|
122
|
+
};
|
110
123
|
|
111
|
-
|
124
|
+
```
|
112
125
|
|
126
|
+
|
1
修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -10,11 +10,6 @@
|
|
10
10
|
### 発生している問題・エラーメッセージ
|
11
11
|
setQuizeez()によって、quizListにクイズが追加されたのち、setQuestion()が実行できるとよいのですが、setQuizList()が非同期で走ってしまうため、上手くQuizListの値が参照できません。
|
12
12
|
このような場合、どのような対処方法が良いのでしょうか。
|
13
|
-
|
14
|
-
|
15
|
-
```
|
16
|
-
エラーメッセージ
|
17
|
-
```
|
18
13
|
|
19
14
|
### 該当のソースコード
|
20
15
|
``` ts
|