React 元素的事件处理和 DOM 元素的很相似,但是有一点语法上的不同:
onClick onChange
onClick={this.fn}
export default class extends React.Component {
clickHandle(e){
console.log('点了')
}
render(){
return (
<div><button onClick = {this.clickHandle}>点我点我点我</button></div>
)
}
}
const Items=({title,num})=>{
const fn=()=>{
console.log('hggg')
}
return(
<div>
<h2>{title}</h2>
<button onClick={fn}></button>
</div>
)
}
<button onClick={(evt) => this.fun(evt)}>按钮</button>
<button onClick={this.fun.bind(this)}>按钮</button>
<button onClick={this.fun(evt)}>按钮</button>
// 通过箭头函数定义事件方法,也能解决this指向问题
fn = (evt) => {
alert(123);
}
constructor(props){
super(props)
// 在构造方法中指定this指向 <button onClick={this.fun()}>按钮</button>
this.fun = this.fun.bind(this)
}
React中可以通过事件处理函数的参数获取到事件对象,它的事件对象叫做:合成事件
即兼容所有浏览器,无需担心跨浏览器兼容问题,此事件对象还拥有和浏览器原生事件相同的接口,包括 stopPropagation()和 preventDefault()
如果你想获取到原生事件对象,可以通过 e.nativeEvent 属性来进行获取
export default class extends React.Component {
clickHandle(e){
// 获取原生事件对象
console.log(e.nativeEvent)
}
render(){
return (
<div><button onClick = {this.clickHandle}>点我点我点我</button></div>
)
}
}
render
里调用方法的地方外面包一层箭头函数render
里通过this.handleEvent.bind(this, 参数)
这样的方式来传递event
传递props
传递到子组件中,然后在子组件件通过this.props.method
来调用版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://www.cnblogs.com/ypSharing/p/15396432.html
内容来源于网络,如有侵权,请联系作者删除!