React-StepPitGuide
  • 封面
  • 前言
  • 基础知识
    • 环境配置
      • WebPack 前端打包工具
      • Babel 编译器
      • Node 环境配置
    • 版本说明
    • JSX
    • 组件
    • Child组件
    • 多组件嵌套
    • 组件生命周期
      • 组件生命周期(React16之前)
    • State属性
    • Props属性
    • 类组件
      • React PropTypes
      • React 可复用组件
      • React 事件与数据的双向绑定
      • React 组件DOM操作
      • React 独立组件间共享 Mixins ⚠
      • React 高阶组件(HOC)
        • 继承方式的高阶组件
        • 代理方式的高阶组件
      • React 无状态组件与PureComponent
      • React 容器组件和展示组件
      • setState
    • 函数组件
      • React 函数子组件
      • React Hook
        • useState
        • useEffect
    • 组件样式
      • CSS內联式样
      • CSS模块化
    • 受控与非受控组件
  • 进阶知识
  • React Context
  • React 顶级API
  • React Portal 传送门
  • 应用知识
    • 路由
      • React-Router2
      • React-router4
        • React-router4 结合React-Redux
    • 服务端渲染
    • 性能优化
      • React 组件优化
        • 定制shouldComponentUpdate
        • PureComponent
        • immutablejs存在的意义和使用
      • Redux性能优化
      • React同构
    • 项目应用
      • React 文件组织方式
      • React 模块接口
      • React 合并reducer
      • React 问题
  • 状态管理
    • Flux
    • Redux
      • Redux 使用
      • Redux 异步
      • Redux Chrome插件使用
      • Redux React-Redux
      • Redux applyMiddleware
      • Redux 结合React
      • Redux 自制Redux
      • Redux 自制React-Redux
      • Redux 自制thunk中间件
      • Redux 自制arr中间件
    • Mobx
      • Mobx 思想
    • RXJS
    • immutable
  • 源码思考
    • 简述
    • SimpleReact
    • 虚拟DOM
      • 虚拟DOM概念(React 16前)
      • 虚拟DOM思考(React 16前)
    • 生命周期
    • 事件
    • Fiber
      • 数据结构
      • Scheduler 调度
      • Concurrent 异步渲染
    • Hooks
      • useState
由 GitBook 提供支持
在本页

这有帮助吗?

  1. 基础知识
  2. 类组件

React 可复用组件

  • 类定义完后,追加属性propTypes传入参数userid:React.PropTypes.number,规定userid是一个数字型,如果传入字符型和其他的非数字型,都会报错。

  • 给页面传入默认值 const defaultProps ={username:'这是一个默认的用户名'//默认属性设置};,把定义的prop传入 BodyIndex.defaultProps = defaultProps;。

import React from 'react';
import BodyChild from './bodychild'
const defaultProps = {
  username:'这是一个默认的用户名'//默认属性设置
};
export default class BodyIndex extends React.Component {
  constructor() {
    super(); //调用基类的所有的初始化方法
    this.state = {
      username: "Parry",
      age:20
    };//初始化赋值
  }
  handleChildValueChange(event){
    this.setState({age:event.target.value})
  }
  changeUserInfo(){
    this.setState({age:50});
  };
  render() {
  // setTimeout(() => {
  //   //更改state的时候
  //   this.setState({username: "IMOOC",age:30})
  // }, 4000);
   return (
    <div>
    <h2>页面主题内容</h2>
    <p>接收到的父页面属性:userid: {this.props.userid} username: {this.props.username}</p>
    <p>age: {this.state.age}</p>
    <input type="button" value="提交" onClick={this.changeUserInfo.bind(this,99)}/>
    <BodyChild {...this.props} id={4} handleChildValueChange={this.handleChildValueChange.bind(this)}/>
    {/*传参数到孙子节点*/}
    </div>
    )
  }
}
BodyIndex.propTypes = {
  userid: React.PropTypes.number
};
BodyIndex.defaultProps = defaultProps;
上一页React PropTypes下一页React 事件与数据的双向绑定

最后更新于4年前

这有帮助吗?