zoukankan      html  css  js  c++  java
  • React Native声明属性和属性确认

    属性声明

    因为用React Native创建的自定义组件可以复用, 我们开发过程中可能一个项目组有多个人同时开发,其他同事可能会用到我们自定义的组件, 但是他们使用的时候很容易忘记使用某些属性,这时候我们应该在自定义组件中声明一些属性。

    //自定义组件
    export default class ConfirmDialog extends Component {
      //....
    }
    ConfirmDialog.propTypes = {
        userConfirmed: React.PropTypes.func.isRequired,
        userCanceled: React.PropTypes.func.isRequired,
        amIStillAlive: React.PropTypes.func.isRequired,
        promptToUser:React.PropTypes.string.isRequired
    };

    上面声明的属性都是 isRequired, 如果不传递这些属性程序会在开发阶段出现警告,开发阶段需要我们进行属性确认。

    这里写图片描述

    属性确认

    属性确认只在开发阶段有效,上面我们声明了两种属性类型确认——func (函数),和string(字符串)。下面再来看看属性确认的语法:
    一、要求属性是JavaScript基本类型

    React.PropTypes.array;
    React.PropTypes.bool;
    React.PropTypes.func;
    React.PropTypes.number;
    React.PropTypes.object;
    React.PropTypes.string;

    二、要求属性是可渲染节点
    指数字,字符串,数字数组,字符串数组.

    React.PropTypes.node

    要求属性是某个React元素

    React.PropTypes.element

    要求属性是某个指定类的实例

    React.PropTypes.instanceOf(NameOfClass)

    要求属性取值为几个特定的值

    React.PropTypes.oneOf(['值1','值2'])

    属性可以为指定类型中的任意一个

    React.PropTypes.oneOfType([
        React.PropTypes.node,
        React.PropTypes.string  
    ])

    属性可以为指定类型的数组

    React.PropTypes.arrayOf(React.PropTypes.number)

    要求属性是一个有指定成员变量的对象
    下面的语句要求传入的对象有一个成员变量是number类型.

    React.PropTypes.objectOf(React.PropTypes.number)

    要求属性是一个指定构成方式的对象

    React.PropTypes.shape({
          color : React.PropTypes.string,
          fontSize: React.PropTypes.number
    })

    属性可以为任意类型

    React.PropTypes.any

    上面的10种语法,都可以通过在后面加上isRequired声明它是必需的.

    属性默认值

    我们还可以给属性指定一个默认值,当没有传递该属性时使用默认值,如:

    ConfirmDialog.defaultProps = {
        promptToUser: '确定吗?'
    };

    同时记得要将指定 promptToUser为必须的’isRequired’ 去掉.

  • 相关阅读:
    pyqt 设置QTabWidget标签页不可选
    C#分块读取文本数据(FileStream)
    C#IO读写文本txt文件中的数据
    C#IO读写文本txt文件中的数据
    Winform开发主界面菜单的动态树形列表展示
    Winform开发主界面菜单的动态树形列表展示
    C#LinqJoin两个DataTable
    C#LinqJoin两个DataTable
    c#转义字符
    c#转义字符
  • 原文地址:https://www.cnblogs.com/hehe520/p/6329897.html
Copyright © 2011-2022 走看看