react setstate TypeError:无法读取属性' setState'未定义的

时间:2018-04-26 09:01:52

标签: reactjs

class CheckBox extends React.Component{
  constructor(checked){
    super(checked);
    this.state={checked:false}
  }
  handleChange(event){
    this.setState({checked:!this.state.checked});
  }
  render(){
    var msg;
    if(this.state.checked){
      msg= "checked"
    }else{
      msg="unchecked"
    }
    return(
      <div>
        <input type="checkbox" onChange={this.handleChange} />
        <h3>Checkbox is {msg}</h3>
      </div>
    );
  }
}

它说

  

TypeError:无法读取属性&#39; setState&#39;未定义的

我不知道原因

1 个答案:

答案 0 :(得分:2)

this绑定到构造函数中的函数

constructor(checked){
    super(checked);
    this.state={checked:false}

    this.handleChange = this.handleChange.bind(this);

}

请参阅https://jsfiddle.net/gaby/chazb1ju/

或者在将处理程序绑定到事件

时传递箭头函数
<input type="checkbox" onChange={(e)=>this.handleChange(e)} />

请参阅https://jsfiddle.net/gaby/sjjrrtsu/