一尘不染

反应-未捕获的TypeError:无法读取未定义的属性'setState'

javascript

我收到以下错误

未捕获的TypeError:无法读取未定义的属性’setState’

即使在构造函数中绑定了delta之后。

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>
        );
    }
}

阅读 379

收藏
2020-04-25

共1个答案

一尘不染

这是由于this.delta不受约束this

为了绑定设置this.delta = this.delta.bind(this)在构造函数中:

constructor(props) {
    super(props);

    this.state = {
        count : 1
    };

    this.delta = this.delta.bind(this);
}

当前,您正在调用绑定。但是bind返回一个绑定函数。您需要将函数设置为其绑定值。

2020-04-25