剧场模式
首页前端诱人的 react 视频教程-基础篇

诱人的 react 视频教程 - 基础篇 #7 事件

下载源码hfpp2012发布于React4896 次点击播放时长:07:24

此次更改:https://github.com/hfpp2012/hello-react/commit/f468f017eef2323b6ba858087f124b2c83432305

src/components/Home.js

import React, { Component } from 'react';

import PropTypes from 'prop-types';

export default class Home extends Component {
  constructor(props) {
    super(props);
    this.age = this.props.age;
  }

  onMakeOlder() {
    this.age += 3;
    console.log(this);
  }

  render() {
    return (
      <div className="container">
        <div className="row">
          <div className="col-xs-1 col-xs-offset-11">
            <div>your name is {this.props.name}, your age is {this.props.age}</div>
            <button onClick={() => {this.onMakeOlder()}} className="btn btn-primary">Make me older</button>
          </div>
        </div>
      </div>
    );
  }
}

Home.propTypes = {
  name: PropTypes.string,
  age: PropTypes.number,
  user: PropTypes.object,
  children: PropTypes.element.isRequired
};
10 条回复
  • guxiaobai
    guxiaobai #1
    onClick = {this. onMakeOlder.bind(this)}
    this.state = {age: this.props.age}
    this.setState({age: this.state+3})
    
  • cl561106
    cl561106 #2

    就是唯一的疑惑是creact-react-app这么做到className='btn btn-primary'的,而且没看到你调用Bootstrap啊~

  • hfpp2012
    hfpp2012 #3
    cl561106 cl561106 #10 回复

    就在前面有说 你去翻翻呗

  • zhaopeng519
    zhaopeng519 #4
    cl561106 cl561106 #10 回复

    在index.html页面引入

  • caifulin
    caifulin #5

    constructor(props) {
    super(props);
    this.age = this.props.age;
    }
    这一段不是很明白既然this.props.age是从父节点传过来的参数那么this.age是什么是给当前class声明一个变量么,既然是继承了父节点那么这个super是指app.js么还是react的类共有的父类,为什么不从super.props.age这样直接取父节点的值,我是做java的对this可能不像前端那么敏感,我觉得this就是值当前这个类,谁能给我科普一下这个this,我用const age = this,props.age;数据的结果是NaN啥意思啊

  • hfpp2012
    hfpp2012 #6
    caifulin caifulin #10 回复

    super 是调用 父类的构造函数,是个方法,不能用 super.props.age 这样 this.age 是 给当前实例添加一个属性 age ,不像 java,可能比较松散灵活一些, NaN 是报错信息,表示不是 一个 number

  • caifulin
    caifulin #7

    super()是调用父类的构造函数这个java也是这样写的。这和this有点不是很明白,this.age是给当前实例添加一个属性这类似java的面向对向么,这个实例值得是谁Home这个class么,我试着这么写
    const age = 0;
    constructor(props) {
    super(props);
    age = this.props.age;
    }
    我是想申明一个Home的全局变量但是语法检测不通过,react不能再class中的函数外申明变量么

  • caifulin
    caifulin #8

    也可能是我一时缓不过来吧,以后写多了自然就能理解了

  • hfpp2012
    hfpp2012 #9
    caifulin caifulin #10 回复

    你这样写只是在试,没有啥根据,你可以了解下 es6 class 相关的知识点,可能就会好一些,写多了可能就自然理解了。

  • caifulin
    caifulin #10

    其实我只是不理解什么时候该使用this

购买或订阅扫码加我微信 love
微信二维码

加我微信:15014006126

支付宝付款
友情提示
   官方 QQ 1 群 697272886(500/2000)
   官方 QQ 2 群 856141852
相似的视频
诱人的 react 视频教程 - 基础篇 #10 无状态组件

诱人的 react 视频教程 - 基础篇 #10 无状态组件

免费播放时长:05:43

5376 次点击

诱人的 react 视频教程 - 基础篇 #2 create-react-app

诱人的 react 视频教程 - 基础篇 #2 create-react-app

免费播放时长:04:18

6241 次点击

诱人的 react 视频教程 - 基础篇 #9 react 如何更新 dom

诱人的 react 视频教程 - 基础篇 #9 react 如何更新 dom

免费播放时长:04:32

6118 次点击

诱人的 react 视频教程 - 基础篇 #4 多个组件

诱人的 react 视频教程 - 基础篇 #4 多个组件

免费播放时长:05:09

5632 次点击

诱人的 react 视频教程 - 基础篇 #12 组件间传值

诱人的 react 视频教程 - 基础篇 #12 组件间传值

免费播放时长:07:05

3021 次点击

© 汕尾市求知科技有限公司 | 隐私条款 | 服务条款 | 粤ICP备15004902号 | 在线学员:27

Top