useState が更新されていません
P粉245003607
P粉245003607 2023-09-14 21:42:54
0
2
545

useState がまだ空である理由を教えていただけますか?更新したくないのです。 setInteraval とデータを更新する関数を使用しており、現時点で useState を設定したいのですが、 useState は setTimeOut(res) の formatTime を無視します。 修正方法を教えていただけますか?

編集: useState

に数値を入力すると リーリー

一瞬表示されてから消え、空のフィールドが表示されます。 setInterval は内部のものをすべて削除するようですが、どうすれば修正できますか?

ああああ

P粉245003607
P粉245003607

全員に返信(2)
P粉103739566

これは、タイムアウト内に状態を設定していることが原因である可能性が高くなります。

もう 1 つの問題は、その中で setTimeout を呼び出していることです。

代わりに、前の状態に基づいて新しい値を返す関数を使用してください。

useState previousState をパラメータとして受け取る関数を受け入れます

リーリー
いいねを押す +0
P粉990008428

setInterval が毎秒実行され、ステータス (timeOut) が毎秒更新されることが問題のようです。

また、formatTime 関数では、createdAt 時刻の代わりに現在時刻 (new Date().getTime()) を使用しています。したがって、ステータスは常に新しい値で毎秒更新されます。

これは更新されたコードです。

リーリー
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート