文档
点击事件
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>## 事件在类中使用```jsximport 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="预警发布统计"><divclassName={`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>
