書き換えられたタイトルは次のとおりです: React 状態の初期更新が発生していません
P粉401901266
P粉401901266 2023-09-08 22:29:43
0
2
513

ユーザーが一度に 1 つ以上の画像をアップロードできる画像アップロード コンポーネントがあります。ユーザーが画像をアップロードするときは、常に useState() を使用して状態を更新するようにしています。しかし、ステータスはすぐには更新されませんでした。次のコードを更新して適切に動作させるにはどうすればよいですか。

リーリー

https://stackblitz.com/edit/react-ujcbjh?file=src/App.js

P粉401901266
P粉401901266

全員に返信 (2)
P粉846294303

非プリミティブ型で useState を使用する場合は常に注意する必要があります。

React ドキュメントの次の 2 ページにいくつかの手順が記載されています:

つまり、react はObject.isを使用して、setStateの呼び出しの間に状態が変化したかどうかを判断します。オブジェクトと配列の場合、その内容が変更された場合でも、これは true を返す場合があります。

いいねを押す+0
    P粉596191963

    React では、useState フックは状態をすぐには更新しません。ステータスの更新は非同期です。つまり、更新されたステータス値は、ステータス セッター関数を呼び出した直後には利用できない可能性があります。

    この問題を解決するには、useEffect フックを使用してファイルの状態の変更をリッスンし、更新時に必要なアクションを実行します。 useEffect フックを含むコードの更新バージョンは次のとおりです:

    リーリー

    この更新されたコードでは、useEffect フックの 2 番目のパラメーター配列で依存関係として file を指定することで、ファイルの状態の変更をリッスンする useEffect フックを追加しました。ファイルのステータスが更新されるたびに、useEffect コールバック関数内のコードが実行されます。 useEffect フック内の更新されたファイル値を使用して、必要な操作を実行できます。

    useEffect フックを使用すると、ステータスの更新後に更新されたステータス値が正しく記録されることがわかります。

    いいねを押す+0
      最新のダウンロード
      詳細>
      ウェブエフェクト
      公式サイト
      サイト素材
      フロントエンドテンプレート
      私たちについて 免責事項 Sitemap
      PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!