ReactNative之PropTypes(七)

前言

眼看很多公司都开始尝试使用ReactNative,达到跨平台开发,最近也写了很多文章,希望让更多想了解的同学快速上手ReactNative.

如果喜欢我的文章,可以关注我微博:袁峥Seemygo

ReactNative之PropTypes

  • 问题:在自定义组件的时候,通常需要暴露属性出去,并且设置属性类型,外界在使用自定义属性的时候,就自动有提示属性功能,。
  • 解决:使用PropTypes就能解决
  • PropTypes用处:
    • 可以实现类型检查,当传入错误的属性值,会报警告,但是不会报错
    • 用PropTypes定义属性,外界使用的时候,会有提示。
  • 注意:
    • PropTypes必须要用static声明,否则无效果。
    • PropTypes 只能用于React框架的自定义组件,默认JS是没有的,因为它是React框架中的。
  •  static:用来定义类方法或者类属性,定义类的方法和属性,生成的对象就自动有这样的属性了。
    

PropTypes使用步骤

  • PropTypes:属性检测,使用的时候需要先导入,在React框架中
import React, { Component,PropTypes } from 'react';

  • 使用

    // 订阅类属性类型,检查属性类型
    static propTypes = {
        name : PropTypes.string,
        age : PropTypes.number
    }
  • 效果
效果.png

属性类型PropTypes

# 数组类型
PropTypes.array

# 布尔类型
PropTypes.bool

# 函数类型
PropTypes.func

# 数值类型
PropTypes.number

# 对象类型
PropTypes.object

# 字符串类型
PropTypes.string

# 规定prop为必传字段
PropTypes.func.isRequired

# prop可为任意类型
PropTypes.any.isRequired

给自定义属性设置初始化值

  • defaultProps:如果想给自定义属性设置初始化值,需要使用defaultProps
  •  注意:也需要添加static
    
  • 使用
//  自定义属性,设置初始值
    static defaultProps = {
        name:'xmg',
        age:20
    }

案例代码

/**
 * Created by ithinkeryz on 2017/5/10.
 */

import React, { Component,PropTypes } from 'react';
import {
    AppRegistry,
    StyleSheet,
    Text,
    View,

} from 'react-native';

export default class XMGView extends Component {

    // 定义属性
    static propTypes = {
        name:PropTypes.string,
        age:PropTypes.number
    }

    // 初始值
    static defaultProps = {
        name:'xmg',
        age:2
    }

    render() {
        // 打印出来, xmg
        console.log(this.props.name)
        return (
            <View>

            </View>
        )
    }

}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,778评论 25 709
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,975评论 6 342
  • react 基本概念解析 react 的组件声明周期 react 高阶组件,context, redux 等高级...
    南航阅读 1,091评论 0 1
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,027评论 19 139
  • 这几天我大一了,作为一个已经预科老前辈我有些骄傲和自卑。骄傲的是我比现在的真正大一的新生来说,我对这个大学不陌生。...
    她是个坏人阅读 246评论 0 0