useState がまだ空である理由を教えていただけますか?更新したくないのです。 setInteraval とデータを更新する関数を使用しており、現時点で useState を設定したいのですが、 useState は setTimeOut(res) の formatTime を無視します。 修正方法を教えていただけますか?
編集: useState
に数値を入力すると リーリー一瞬表示されてから消え、空のフィールドが表示されます。 setInterval は内部のものをすべて削除するようですが、どうすれば修正できますか?
ああああP粉1037395662023-09-15 17:42:24
これは、タイムアウト内に状態を設定していることが原因である可能性が高くなります。
もう 1 つの問題は、その中で setTimeout を呼び出していることです。
代わりに、前の状態に基づいて新しい値を返す関数を使用してください。
useState
previousState
をパラメータとして受け取る関数を受け入れます
P粉9900084282023-09-15 09:23:00
setInterval が毎秒実行され、ステータス (timeOut) が毎秒更新されることが問題のようです。
また、formatTime 関数では、createdAt 時刻の代わりに現在時刻 (new Date().getTime()) を使用しています。したがって、ステータスは常に新しい値で毎秒更新されます。
これは更新されたコードです。
リーリー