ホームページ > ウェブフロントエンド > jsチュートリアル > React で「Uncaught TypeError: Cannot read property 'setState' of unknown」が発生するのはなぜですか?

React で「Uncaught TypeError: Cannot read property 'setState' of unknown」が発生するのはなぜですか?

DDD
リリース: 2024-11-04 22:09:02
オリジナル
986 人が閲覧しました

Why Am I Getting

React - Uncaught TypeError: Unable to Access 'setState' on Unknown Object

React コンポーネントの状態を更新しようとすると、開発者は次のエラー:

Uncaught TypeError: Cannot read property 'setState' of undefined
ログイン後にコピー

このエラーは、状態を変更する React コンポーネント メソッドがコンポーネントのインスタンスにバインドされていない場合に発生します。この問題を解決するには、次の手順に従います。

  1. コンポーネントのコンストラクター内で状態を定義します。
<code class="javascript">constructor(props) {
    super(props);

    this.state = {
        count: 1
    };
}</code>
ログイン後にコピー
  1. コンポーネント メソッドをコンポーネント インスタンスにバインドします。
<code class="javascript">this.delta = this.delta.bind(this);</code>
ログイン後にコピー
  1. コンポーネント メソッド内で、これがコンポーネント インスタンスを参照していることを確認します。これは、アロー関数を使用するか、コンストラクターでメソッドを手動でバインドすることで実現できます:
<code class="javascript">delta() {
    this.setState({
        count: this.state.count + 1
    });
}</code>
ログイン後にコピー
  1. レンダー関数でバインドされたコンポーネント メソッドを利用します:
<code class="javascript">render() {
    return (
        <div>
            <h1>{this.state.count}</h1>
            <button onClick={this.delta}>+</button>
        </div>
    );
}</code>
ログイン後にコピー

これらの手順に従うと、コンポーネント メソッドが適切にバインドされ、未定義オブジェクト エラーが発生することなく setState() メソッドにアクセスできるようになります。

以上がReact で「Uncaught TypeError: Cannot read property 'setState' of unknown」が発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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