React強化月間 4日目
今日の予定
17時~19時 スクール講義 JS
19時30分~ スクール交流会
実質17時までしか時間がない。
UseEffect
※勉強4日目の勉強メモです。
完成してません。
技術的な参考には適さないですのであしからず
問題文の呼び出しを作ったらGPTにuseEffectを提案されたので勉強した。
useEffectがない場合randomは初期値(0)のままなので問題文は当然変化なし。
useEffectの中にrandomを記述した場合、画面を表示したときにuseStateが走り、副作用としてuseEffectが1回起動する。
(正確にはReactはテスト環境だと2回レンダリングする)
その際にrandomが働き、問題文が変化する。
同じ問題が出ないようにする
randomした際に出た問題を削除するために、restQuestionsを新しくuseStateて定義する。
restQuestionsはquestionsからrandomな数字をspliceしたオブジェクト{ }
と、ここで動かなくなった。
なんやかんやコネコネして
こうなった。
時間ないので続きは明日。
現状の問題
問題が減っていくようには出来たけど、残り10個くらいから減っていかない。
まぁどっかに問題があるんでしょう!
コードのメモ
flagについて
useEffectの最後の[]で読み込むflagを設定してて、ボタンを押したときにもuseEffectが読み込まれるようにしている。
これによってボタンを押すと問題が変わる。
const newRestQuestions = [...restQuestions]; これはスプレッド構文で配列にしてる。spliceするために。