ホームページ > ウェブフロントエンド > jsチュートリアル > React コンポーネント関数で「this」が未定義なのはなぜですか?どうすれば修正できますか?

React コンポーネント関数で「this」が未定義なのはなぜですか?どうすれば修正できますか?

Susan Sarandon
リリース: 2024-12-03 07:41:13
オリジナル
237 人が閲覧しました

Why is

React コンポーネント関数での未定義の "This" の処理

この質問は、React コンポーネント関数内で "this" が未定義であるという問題に由来しています。 React コンポーネント。

提供された例では、onToggleLoop 関数で問題が発生します。この関数を実行すると、コンポーネント内で「this」が未定義になります。これは、React がメソッドをコンポーネントに自動的にバインドしないためです。

この問題を解決するには、bind(this) 関数を使用してコンストラクターでメソッドを手動でバインドする必要があります。その方法は次のとおりです。

constructor(props) {
  super(props);

  this.state = {
    loopActive: false,
    shuffleActive: false,
  };

  this.onToggleLoop = this.onToggleLoop.bind(this);
}
ログイン後にコピー

コンストラクターで onToggleLoop メソッドをバインドすることで、実行時に「this」がコンポーネント インスタンスを参照するようにします。これにより、その関数内のコンポーネントの状態と props にアクセスできるようになります。

この変更を行うと、「this」オブジェクトは onToggleLoop 関数で未定義ではなくなり、loopActive を更新できるようになります。期待どおりの状態です。

以上がReact コンポーネント関数で「this」が未定義なのはなぜですか?どうすれば修正できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート