老莫的笔记本  
  
查看: 887|回复: 0

React propTypes 与 defaultProps

[复制链接]

662

主题

878

帖子

5133

积分

超级版主

Rank: 8Rank: 8

积分
5133
发表于 2019-12-20 17:07:01 | 显示全部楼层 |阅读模式
  1. import React, { Fragment, Component } from 'react';
  2. import PropTypes from 'prop-types';

  3. class ToDoItem extends Component
  4. {

  5.     // 父子组件传值
  6.     // 组件之间的传值靠 属性
  7.     // 第一步 在 父组件【其实不是负的也对啊】 <Myapp  mydata={dsss} /> 上绑定 属性
  8.     // 第二步 在 组件内部 使用 this.props.mydata 来接受 传递过来的值 与 方法

  9.     // 里面的this 指向问题
  10.     // 先说一个简写  在 constructor 中 把 函数指定了 this 则 下面不用指定
  11.     // 再说一个 父级this 的绑定问题 ; 因为方法是用 属性传过来的 .直接在父级页面 bind(this) 即可把 子页面接收到的方法 指向调整为this

  12.     constructor(props)
  13.     {
  14.         super(props);
  15.         this.delFunction = this.delFunction.bind(this); // 和在行间写一样
  16.     }

  17.     render(){
  18.         let {delF, content,index} = this.props;
  19.         return (
  20.             <Fragment>
  21.                 <li onClick={this.delFunction} >
  22.                     {content }  
  23.                 </li>
  24.               
  25.             </Fragment>
  26.         );
  27.     }


  28.     delFunction()
  29.     {
  30.         let {delF, content,index} = this.props;

  31.         // alert(this.props.index )
  32.         // 花样传值
  33.         delF( index )
  34.     }

  35. }

  36. // 这玩意是用于规定 组件传过来的 值的类型的  必须写在 类的 外面
  37. // string 字符串; func 函数 ;number 数字 ;还有数组-对象之类 还可以 即使字符串又是数字
  38. // 如果 后面接了 .isRequired  表示是必须传递过来的值 例如 PropTypes.string.isRequired
  39. ToDoItem.propTypes ={
  40.     content:PropTypes.string,
  41.     delF:PropTypes.func
  42. }
  43. // 默认值
  44. ToDoItem.defaultProps = {
  45.     content:'sdyu'
  46. }


  47. export default ToDoItem;
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表