React创建类时关于this的疑惑
来源:互联网 发布:csp是什么软件 编辑:程序博客网 时间:2024/06/04 01:22
在创建React类时,代码已附,触发click事件,报错,“Cannot read property 'setState' of undefined”,通过在控制台打印this,发现changeUserInfo()里的this为undefined,此时比较疑惑,解决的办法当然是给这个onClick事件改写为view plain copyonClick={this.changeUserInfo.bind(this)},但是为什么changeUserInfo()里的this为undefined呢?本人菜鸟一枚,翻到一篇文章,解释原因是:实例化组件时,changeUserInfo()中的this的上下文是div支撑的实例,而其他的this的上下文是BodyIndex实例,所以导致报错~求路过的大神指教~
import React from 'react';// var React = require('react');export default class BodyIndex extends React.Component { constructor () { super();// 调用基类的所有初始化方法 this.state = {username: 'Parry', age: 20} } changeUserInfo() { console.log('changeUserInfo()'); console.log(this);// undefined why??? this.setState({age: 50}) } render () { console.log('render()'); console.log(this); // BodyIndex Object return ( <div> <h2>Page Content...</h2> <p>{this.props.userId}{this.props.userName}</p> <p>age: {this.state.age}</p> <input type="button" value="提交" onClick={this.changeUserInfo}/> {/*所以要写成onClick={this.changeUserInfo.bind(this)}*/} </div> ) }}
阅读全文
0 0
- React创建类时关于this的疑惑
- 关于androidstudio创建aidl文件的疑惑
- 关于ArrayList类的疑惑!
- 关于教育质量的疑惑
- 关于接口的疑惑
- 关于CreateProcess的疑惑
- 关于指针的疑惑
- 关于getopt_long的疑惑
- 关于MVC的疑惑
- 关于setVisibility的疑惑
- 关于Manifest的疑惑
- 关于printf的疑惑
- 关于VM_COPYDATA的疑惑
- 关于RecyclerView的疑惑
- 关于kafka的疑惑
- 关于迭代器的疑惑
- 关于学科的疑惑
- 关于define 的疑惑
- 工具类—StreamToString
- LeetCode--Majority Element(出现次数最多的元素)Python
- 批量删除.svn文件
- hive里建内部表和外部表示例
- 阿里云技术升级 价格调整普惠用户
- React创建类时关于this的疑惑
- 阿里云产品 ECS、RDS、CDN、OCS、OSS、ACE、SLB介绍
- 资料: 关于美国屠杀印第安人的“真相”
- JS学习
- 使用Jena-TDB存储RDF本体、知识图谱文件
- web使用openoffice实现在线预览office文档
- opencv computer vison
- Android源码解析之singleTask launchMode
- 小白使用react——解决this.props.history.push无法跳转的问题