Skip to content
此页目录
本文总阅读量

React 事件处理

修改状态需要用 setState({修改的属性:值},回调)

jsx
onClick={()=>{this}} // 箭头函数指向 react
onClick={this.fn.bind(this)} // 普通函数指向类本身,需要 bind 绑定
// 或声明函数时
getData = () => {
  console.log(this);
}

类 ----

jsx
constructor() {
  super()
  this.state = {
    tag : true,
    arr : ['z1','z2'],
    age : 10
  }
}

render ----

jsx
{ this.state.age }
<button onClick={
  () => { this.setState({ age: this.state.age + 1 }, 
    ()=>{console.log(this.state.age)}) 
  }
}
>age++</button>

事件对象

es5 方式 event 会隐式传递,es6 手动传递 ev。接收形参都在函数的最后一个参数

jsx
<button onClick={this.getEvent.bind(this,11)}>getEventES5</button>
<button onClick={(ev) => this.getEvent(11,ev)}>getEventES6</button>

模拟Vue双向绑定

jsx
valChange = (e) => {
  this.setState({
    txt : e.target.value
  })
}
<input type="text" value={this.state.txt} onChange={this.valChange}/>
<div>{this.state.txt}</div>

评论

交流群