React クラス コンポーネントを React 関数コンポーネントに変換しようとしています。
コンポーネントの内部と外部で呼び出すことができる onChange 関数があります。 useState フックは、関数コンポーネント関数が呼び出されたときに初期値を取得します。古いクラスコンポーネントを使用すると、すべてが正常に動作します。なぜこれが起こるのか、そしてそれを解決するにはどうすればよいですか?
onChange
useState
問題は、onChange が廃止されたクロージャであることです。行う必要があるのは、onChange を次のようにすることです:
または、useEffect の依存関係配列に test を追加することもできますが、必ずクリーンアップしてください。 (とにかくこれを行うべきですが、今はそれがより重要です)
useEffect
test
技術的には、後者のアプローチを行う場合は、useCallback
useCallback
この利点は、onChange の依存関係をさまざまな場所で追跡する必要がないことです。 onChange の依存関係リストは現在閉じられています。
問題は、
リーリーonChange
が廃止されたクロージャであることです。行う必要があるのは、onChange
を次のようにすることです:または、
リーリーuseEffect
の依存関係配列にtest
を追加することもできますが、必ずクリーンアップしてください。 (とにかくこれを行うべきですが、今はそれがより重要です)技術的には、後者のアプローチを行う場合は、
を行う必要があります。 リーリーuseCallback
この利点は、
onChange
の依存関係をさまざまな場所で追跡する必要がないことです。onChange
の依存関係リストは現在閉じられています。