之前的文章我们介绍了  React 绑定属性( 绑定class  绑定style)、引入图片  循环数组渲染数据。接下来我们将介绍 React 事件,方法, React定义方法的几种方式 获取数据 改变数据 执行方法传值。

 import React, {Component} from 'react';

 class Home extends Component {
constructor(props) {
super(props);
this.state = {
name: "zhangsan",
}; this.getData2 = this.getData2.bind(this);
} getData1() {
console.log(this.state.name)
} getData2() {
console.log(this.state.name)
} getData3 = () => {
console.log(this.state.name)
} setData = (name) => {
this.setState({
name: name
})
} render() {
return (
<div>
<p>Hello {this.state.name}</p> <button onClick={this.getData1.bind(this)}>获取数据1</button>
<button onClick={this.getData2}>获取数据2</button>
<button onClick={this.getData3}>获取数据3</button>
<button onClick={this.setData.bind(this, "lisi")}>改变数据</button>
</div>
);
}
} export default Home;

React 上绑定方法共有三种方法:

首先我们在 onClick 点击时间中直接绑定 this.getData 方法的时候如果写成 this.getData( ) 的话会直接调用该方法,所以不能写 ( ),

在不写 () 的情况下,后点击运行 getDate 方法获取 this.state 里面的数据会报错,这是因为this指向发生了变化。绑定 this 指向有一下方法:

1、this.getData1.bind(this),在该方法后面直接写 .bind(this),在运行 getData1 方法的时候 this 指向不会发生变化。

2、this.getData2 = this.getData2.bind(this),在 constructor 构造函数中直接将 getData2 方法绑定上 this.

3、this.getData ,然后在调用该方法的时候 getData3 = () => { },运用箭头函数的方法直接将 this 指向上下文。

在实际开发应用中我们建议使用第三种方法。

在方法中传值需要使用 this.setData.bind(this, 值) 的方法,第一个参数为 this,第二个参数为要传的值。

在方法中要改变 this.state 中的数据时需要使用 this.setState({ 要改变的数据变量名:更改的数据 }) 的方法。

最后运行结果如下:

最新文章

  1. 学习angular.js的一些笔记想法(上)
  2. 基于DDD的.NET开发框架 - ABP缓存Caching实现
  3. mysql创建用户
  4. Django环境配置
  5. Mutual Training for Wannafly Union #1解题报告
  6. 开篇,UVA 755 &amp;&amp; POJ 1002 487--3279 (Trie + DFS / sort)
  7. [改善Java代码]不能初始化泛型参数和数组
  8. vs如何新建自己工程的环境变量(局部)和 Windows系统(全局).
  9. 【C#4.0图解教程】笔记(第9章~第18章)
  10. Java SE 6 新特性: HTTP 增强--转
  11. &lt;s:iterator&gt; 序号
  12. PHP命名空间(Namespace)的使用详解
  13. 用swoole和websocket开发简单聊天室
  14. BZOJ 2594: [Wc2006]水管局长数据加强版 [LCT kruskal]
  15. 广师大学习笔记之文本统计(jieba库好玩的词云)
  16. C#语言のC#扩展方法(.Net特性)
  17. 朗科32G TF卡的读写测试
  18. Feign 注意事项
  19. JVM 类加载器 (二)
  20. spy-debugger 前端调试工具

热门文章

  1. git use
  2. MySQL- 常用的MySQL函数,指令等
  3. 简洁的支持展开关闭的tab标签代码
  4. ES提高数据压缩的设置——单字段,去掉source和all
  5. Wannafly #4 F 线路规划
  6. CodeForces - 1C:Ancient Berland Circus (几何)
  7. elasticsearch监控平台cerebro-0.8.3 相关操作
  8. 背包搜索--LH
  9. Redo Log File(inactive、active)损坏,处理恢复对策
  10. js一个游戏小笔记