Reactjs react setstate TypeError:无法读取属性';设置状态';未定义的 class复选框扩展了React.Component{ 构造函数(已选中){ 超级(选中); this.state={checked:false} } 手变(活动){ this.setState({checked:!this.state.checked}); } render(){ var-msg; if(this.state.checked){ msg=“选中” }否则{ msg=“未选中” } 返回( 复选框为{msg} ); } }

Reactjs react setstate TypeError:无法读取属性';设置状态';未定义的 class复选框扩展了React.Component{ 构造函数(已选中){ 超级(选中); this.state={checked:false} } 手变(活动){ this.setState({checked:!this.state.checked}); } render(){ var-msg; if(this.state.checked){ msg=“选中” }否则{ msg=“未选中” } 返回( 复选框为{msg} ); } },reactjs,Reactjs,上面说 TypeError:无法读取未定义的属性“setState” 我不知道原因或者将此绑定到构造函数中的函数 class CheckBox extends React.Component{ constructor(checked){ super(checked); this.state={checked:false} } handleChange(event){ this.setState({checked:!this.state.checked});

上面说

TypeError:无法读取未定义的属性“setState”


我不知道原因

或者将此绑定到构造函数中的函数

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


或者在将处理程序绑定到事件时传递arrow函数

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

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

}
this.handleChange(e)}/>

请参见

您必须绑定
handleChange()
函数。可以在构造函数中执行此操作:
this.handleChange=this.handleChange.bind(this)
或通过将其设置为箭头函数来绑定
handleChange()
<input type="checkbox" onChange={(e)=>this.handleChange(e)} />