Devlog 7日目に1秒入力してサーバーに要求するのを待つ😤
6357 ワード
中に入る。
7日、2週目の月曜日から、Devlogは延期された.理由は手首の痛み.どのくらい仕事をしていたのか、腕が痛くて文章も書けなくなった.この日以降、手首を保護するために、左手マウスに向かいました.積み上げたdevelogを書くには迷っていますが、幸いgithubには簡単なdevelogがあるので、それをもとに書きたいと思います.
入力待ち1秒、要求サーバ
隊員たちの協力と進行状況を見て、夜からこの部分を重点的に行いました.特にこの機能に時間がかかりました.これは様々な概念が総合的に運用されている部分である.
この機能により、不要なサーバの重複要求を削減できます.
コンセプトuserEffect環境での非同期関数
結論から言えば,useEffect関数に直接asyncを加えることはできない.
例えば、useEffect(async () => {
のようなコードはだめです.
そうですか.非同期関数を個別に作成および実行する必要があります.useEffect(() => {
async function testFunc() {
const A = await axios();
console.log(A);
}
testFunc();
}, [])
隊員たちの協力と進行状況を見て、夜からこの部分を重点的に行いました.特にこの機能に時間がかかりました.これは様々な概念が総合的に運用されている部分である.
この機能により、不要なサーバの重複要求を削減できます.
コンセプトuserEffect環境での非同期関数
結論から言えば,useEffect関数に直接asyncを加えることはできない.
例えば、
useEffect(async () => {
のようなコードはだめです.そうですか.非同期関数を個別に作成および実行する必要があります.
useEffect(() => {
async function testFunc() {
const A = await axios();
console.log(A);
}
testFunc();
}, [])
[Hooks]userEffect非同期の使用
[react]useEffect hookでasync wait関数を使用する
useEffect
とuseState
の概念に対して一定の理解があって、非動機を加えて、とても大きい理解があります.現在ではasync/await
を扱う方法が把握されているが,当時はなかなか見つからなかった.勤務時間が長くなるにつれて、疲労感が蓄積されてきたのでしょうか.非同期コードを少し見られたらどうなりますか?コンセプトsetTimeout, clearTimeout
settimeout最初のパラメータは、サーバ上に重複する確認要求関数を配置し、2番目のパラメータは時間を配置します.テキストボックスでonChange操作が発生した場合、settimeout時間(1秒)をcleartimeoutにリセットし、settimeoutを再度実行します.
ここで問題が発生したが、onChangeのHook更新を受け入れるにつれて、新しいsettimeoutも発生した.cleartimeoutを実行しても、新しいレンダリング環境で実行されるため、新しいsettimeoutが初期化されます.settimeoutはブランド化されても残ると思っていたので、グーグルを再回転しました.
コンセプトuseRef()
userefは、再有効にしてもステータスを維持できます.
timeWait
変数にuseref()hookが割り当てられ、cleartimeoutおよびsettimeoutが設定されます.結果は大成功!再アップロードしてもuserefのため、以前のsettimeoutは正常に初期化されます. // TODO: 입력시 대기 후 서버에 데이터 충돌 확인
const timeWait = useRef();
useEffect(() => {
clearTimeout(timeWait.current);
timeWait.current = setTimeout(() => {
// * useEffect 안에서 비동기 실행할 때 함수
async function setConflictationMsgFromAsync() {
setConflicationMsg(await isConflict(values));
}
setConflictationMsgFromAsync();
setValidationMsg(isValid(values));
}, 1000);
}, [values]);
Reference
この問題について(Devlog 7日目に1秒入力してサーバーに要求するのを待つ😤), 我々は、より多くの情報をここで見つけました https://velog.io/@shleecloud/Devlog-7일차-입력-1초-기다리고-서버-요청テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol