类组件里的方法
两种调用
<button onClick={()=>{ this.changeWether()}}>修改</button>
// 1. 本质是在点击的时候,再来找this 调用,这个this肯定是指向实例对象的
<button onClick={this.changeWether.bind(this)}>修改</button>
// 2. 本质是 用bind修改this,render里的this 也是指向实例对象的,所以通过bind的方法修改this但是并不调用函数
// 错误示范
<button onClick={this.changeWether}></button>
// 这个调用的时候,this函数的this,虽然是类里的函数,但是还是指向undefined
// 3. 或者直接在函数定义的时候
changeWether = ()=>{
console.log(this)
const isHot = this.state.isHot
this.setState({
isHot: !isHot
})
}
// 这样就可以直接使用
<button onClick={this.changeWether}></button>
setState方法
this.setState({
"isHot":!this.state.isHot
})
// 直接修改state里的字段 isHot
// 并且是合并,不是替换,修改不一样的,一样的不变
// 每次修改状态,render都会调用一次
const isHot = this.state.isHot
this.setState({
isHot: !isHot
})
// 也可用保存到一个变量的形式来修改