美文网首页React Native
RN笔记之prop-types进行属性确认

RN笔记之prop-types进行属性确认

作者: 雪脩 | 来源:发表于2018-08-06 16:40 被阅读0次

    一、基本介绍

    1、属性确认的作用

    1)、使用React-native创建的组件是可以复用的,所以我们封装的组件可以用在其他项目或给项目组其他人使用。但是别人可能对这个组件不熟悉,经常忘记使用某些属性,或者某些属性传递的数据类型有误。因此我们可以在开发React Native自定义组件时,可以通过属性确认来声明这个组件需要哪些属性。这样,如果在调用这个自定义组件时没有提供相应的属性,则会在手机与调试工具中弹出警告信息,告知开发者该组件需要哪些属性。
    注意:为了保证React Native代码高效运行,属性确认仅在开发环境中有效。也就是说,正式发布的App运行时是不会进行检查的。

    2)、进入项目根目录,执行如下代码安装prop-types库:
    yarn add prop-types
    3)、在需要使用的JS文件中使用如下代码引入:
    import PropTypes from 'prop-types';

    二、属性确认的语法

    1、要求属性是指定的JavaScript基本类型

    属性: PropTypes.array,
    属性: PropTypes.bool,
    属性: PropTypes.func,
    属性: PropTypes.number,
    属性: PropTypes.object,
    属性: PropTypes.string,
    

    2、要求属性是可渲染的节点

    属性:PropTypes.node,
    

    3、要求属性是某个React元素

    属性:PropTypes.element,
    

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

    属性:PropTypes.instanceOf(NameOfAClass),
    

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

    属性:PropTypes.oneOf(['value1'  ,  'value2'] ),
    

    6、要求属性为指定类型中的一个

    属性:PropTypes.oneOfType([
           PropTypes.bool,
           PropTypes.number,
           PropTypes.instanceOf(NameOfAClass),
         ])
    

    7、要求属性为指定类型的数组

    属性: PropTypes.arrayOf(PropTypes.number),
    

    8、要求属性是一个有特定成员变量的对象

    属性: PropTypes.objectOf(PropTypes.number),
    

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

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

    10、属性可以是任意类型

    属性: PropTypes.any
    

    三、将属性声明为必需的

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

    属性: PropTypes.array.isRequired,
    属性: PropTypes.any.isRequired,
    属性: PropTypes.instanceOf(NameOfAClass).isRequired,
    

    四、示例

    自定义NavigationBar中有部分使用,可以借鉴

    相关文章

      网友评论

        本文标题:RN笔记之prop-types进行属性确认

        本文链接:https://www.haomeiwen.com/subject/yijgvftx.html