検索

ホームページ  >  に質問  >  本文

useState が更新されていません

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

編集: useState

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

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

ああああ

P粉245003607P粉245003607426日前540

全員に返信(2)返信します

  • P粉103739566

    P粉1037395662023-09-15 17:42:24

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

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

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

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

    リーリー

    返事
    0
  • P粉990008428

    P粉9900084282023-09-15 09:23:00

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

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

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

    リーリー

    返事
    0
  • キャンセル返事