文档
点击事件
react
中的点击事件和原生的点击事件很相似,只不过采用的是小驼峰的形式执行的,例如
原生点击事件
<div onclick="handleClick()">点击我</div>
<script>
function handleClick(){
console.log("点击事件")
}
</script>
react点击
```jsx import React from “react”; functiontestClick { handleClickitem = (index) => { console.log(index); console.log(this); }; render() { return (<div className="left-bottom-container">
<div onClick={handleClickitem}>本月 </div>
</div>
); } }
- 区别
1. 使用小驼峰命名 `onClick`
1. 使用大括号包裹 ` <div onClick={handleClickitem}>本月 </div>`
<a name="zeUYb"></a>
## 事件在类中使用
```jsx
import React from "react";
import Title from "@/components/Title";
export default class LeftTop extends React.Component {
constructor(props) {
super(props);
this.state = {
isActive: true,
activeIndex: 0,
};
// this.handleClickitem = this.handleClickitem.bind(this);
}
handleClickitem = (index) => {
console.log(index);
console.log(this);
};
render() {
return (
<div className="left-bottom-container">
<Title text="预警发布统计">
<div
className={`solt-children ${this.state.isActive ? "active" : ""}`}
onClick={() => this.handleClickitem(0)}
>
本月
</div>
<div className="solt-children">本周</div>
<div className="solt-children">本日</div>
</Title>
</div>
);
}
}
类中使用的 this
问题
在dom中点击默认 this
是 undefined
,如果想要获取 this
,可以这样做
- 使用
bind
绑定 ```jsx import React from “react”; import Title from “@/components/Title”; export default class LeftTop extends React.Component { constructor(props) { super(props); // 使用bind绑定 this.handleClickitem = this.handleClickitem.bind(this); } handleClickitem () { console.log(index); console.log(this); }; render() { return (
); } }<div onClick={this.handleClickitem}> 本月 </div>
`bind` 还可以这样写
```jsx
<div onClick={this.handleClickitem.bind(this,0)}> 本月 </div>
- 使用箭头函数
```jsx
// 这个地方使用箭头函数
handleClickitem = (index) => {
console.log(index);
console.log(this);
};
render() {
return (
); } }<div onClick={this.handleClickitem}> 本月 </div>
箭头函数还可以这样写
```jsx
<div onClick={()=>this.handleClickitem(0)}> 本月 </div>