1. ホーム
  2. Web プログラミング
  3. ジャバスクリプト

[解決済み】React - uncaught TypeError: 未定義のプロパティ 'setState' を読み取れない

2021-12-28 08:43:48

質問

リアクトコンポーネントを実行すると、エラーが発生します。

Uncaught TypeError: 未定義のプロパティ 'setState' を読み取ることができません。

は、次のようなコードです。

class Counter extends React.Component {
    constructor(props) {
        super(props);
        this.state = {
            count : 1
        };
        this.delta.bind(this);
    }
    delta() {
        this.setState({
            count : this.state.count++
        });
    }
    render() {
        return (
            <div>
                <h1>{this.state.count}</h1>
                <button onClick={this.delta}>+</button>
            </div>
        );
    }
}

解決方法は?

この原因は this.delta にバインドされていない this .

この問題を解決するためには this.delta = this.delta.bind(this) をコンストラクタで指定します。

constructor(props) {
    super(props);
    this.state = {
        count : 1
    };
    this.delta = this.delta.bind(this);
}

現在、bindを呼び出しています。しかし、bindはバインドされた関数を返します。その関数をバインドされた値に設定する必要があります。