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