react-native组件学习

react-native组件爬坑

  • activityIndicator

    • animating属性如果一开始为false的话 则不会渲染该组件 后面再修改属性也没用
  • button或touch组件点击时有时会报错RESPONDER_INACTIVE_PRESS_IN....

    • 仅在远程调试时发生
  • FlatList 纯组件

    • 必要参数:
      • data 循环数据
      • extraData 额外数据(为了让列表更新的匹配数据) 因为该组件是纯组件 所以只有它的props发生改变才会更新,所以如果想让该列表更新 一定要把交互的数据(state)放如这个属性中
      • keyExtractor 每列的key生成器
      • renderItem 渲染每列 可以接受一个对象 item为data数组中的每项,index为角标
    • 为了优化性能建议使renderItem的组件也成为纯组件
    • 可选参数:
      • ItemSeparatorComponent 分割线组件要用外边距撑开才能看得见
      • ListEmptyComponent 无法使用
      • ListFooterComponent 尾部
      • ListHeaderComponent 头部
      • horizontal 设置是否为水平布局
      • initialNumToRender 优先渲染的个数
      • onEndReached 滚动到接近底部时调用
      • onEndReachedThreshold 决定当距离内容最底部还有多远时触发onEndReached
        回调。注意此参数是一个比值而非像素单位。比如,0.5表示距离内容最底部的距离为当前列表可见长度的一半时触发。
      • onRefresh 当刷新时调用,设置该参数即会显示一个标准的refreshConrtol
      • refreshing bool 控制是否显示刷新控件
    • 该组件是继承自scrollView的 所以scrollView的属性它都可以使用,例如:refreshControl....
    • overScrollMode={"always"}该属性可以控制scrollView等滚动视图内容不超过容器时也可以上拉下拉
  • Modal(RN库)组件默认是占据整个屏幕的 不能修改样式 所以内容要放在子组件中

  • react-native-router-flux

    • 组件结构为:
      • Router
        • Lightbox
        • Stack
          • Tabs
          • Scene || Drawer-Scene
        • Modal
    const Route = _ => {
        return (<Router sceneStyle={Styles.routerStyle}>
            <Lightbox>
                <Stack key={"Root"} navigationBarStyle={Styles.navigationBar} titleStyle={{color: Constant.titleTextColor}}>
                    <Tabs key={"Tab"} showLabel={false} tabBarPosition={"bottom"} lazy animationEnabled={false}
                          swipeEnabled={false}>
                        <Scene icon={TabIcon} tabIconName={"shouye"} hideNavBar key={"Mine"} title={"我的"} component={Mine}/>
                        <Scene icon={TabIcon} tabIconName={"shouye"} hideNavBar key={"Index"} title={"首页"}
                               component={Index}/>
                    </Tabs>
                    <Drawer key={"Drawer"} drawerPosition={'right'}
                            hideNavBar
                            drawerWidth={100}
                            drawerIcon={<AppIcon name={"shouye"} size={20} color={"purple"}/>}
                             contentComponent={Arawer}>
                        <Scene key={"Mine_Help"} component={Mine_Help} title={"帮助中心"}/>
                    </Drawer>
                </Stack>
                <Modal key={"Need"} component={LoadingModal}/>
    
            </Lightbox>
    
        </Router>)
    };
    
  • RefreshControl组件可以在内部放置子组件(必须需要设置尺寸),在安卓上可以直接使用(显示)RefreshControl控件,ios上必须放在scrollview等列表控件中作为刷新控件

  • flex布局中不使用 justifyContent时默认组件的宽度是百分百,在RN中默认布局是column

  • 在android中View的高度默认是可以被子组件撑开的 但是如果父组件设置了flex:xxx,则限定了该容器的高度为其flex值,子组件不再能撑开,宽度与高度的规则一样

    • 注意:父组件设置的width,height样式是可以被撑开的,仅android中的flex不能被撑开
    //举个例子:
    <View style={[styles.flexDirectionRowNotFlex]}> //未限制高度,仅把主轴翻转
        <View style={[styles.flex,{backgroundColor:"#ccc"}]}> //由于主轴翻转,此处flex值对应的是宽度,即此处限定了宽度为父组件的flex:1。  注意:此处内容内的主轴是column
            <View style={[styles.flexDirectionRowNotFlex]}> //为限定高度
                <View style={{height:200,width:100,backgroundColor:"#000"}}/> //设置高度,由于父组件都没限制flex高度,则可以把所有父组件的高度撑开
          </View>
      </View>
    </View>
    

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,711评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,079评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,194评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,089评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,197评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,306评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,338评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,119评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,541评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,846评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,014评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,694评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,322评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,026评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,257评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,863评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,895评论 2 351