最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

react-native-tab-navigator組件的基本使用示例代碼

 更新時(shí)間:2017年09月07日 14:23:37   作者:隨遇而安_2750  
本篇文章主要介紹了react-native-tab-navigator組件的基本使用示例代碼,具有一定的參考價(jià)值,有興趣的可以了解一下

要做的效果很簡單,如下圖所示:

使用基本教程

1.引入組件

import TabNavigator from 'react-native-tab-navigator';

Github上的地址

2.render方法中返回:

render() { 
  return ( 
   <View style={styles.container} > 
    <TabNavigator> 
     <TabNavigator.Item 
      selected={this.state.selectedTab === '電影'} 
      title="電影" 
      titleStyle={styles.tabText} 
      selectedTitleStyle={styles.selectedTabText} 
      renderIcon={() => <Image style={styles.icon} source={require("../images/movie_gray.png")} />} 
      renderSelectedIcon={() => <Image style={styles.icon} source={require("../images/movie_red.png")} />} 
      onPress={() => this.setState({ selectedTab: '電影' })}> 
      <MoviePage/> // 這里放入頁面組件
     </TabNavigator.Item> 
     <TabNavigator.Item 
      selected={this.state.selectedTab === '音樂'} 
      title="音樂" 
      titleStyle={styles.tabText} 
      selectedTitleStyle={styles.selectedTabText} 
      renderIcon={() => <Image style={styles.icon} source={require("../images/music_gray.png")} />} 
      renderSelectedIcon={() => <Image style={styles.icon} source={require("../images/music_red.png")} />} 
      onPress={() => this.setState({ selectedTab: '音樂' })}> 
      <MusicPage /> 
     </TabNavigator.Item> 
     <TabNavigator.Item 
      selected={this.state.selectedTab === '圖書'} 
      title="圖書" 
      titleStyle={styles.tabText} 
      selectedTitleStyle={styles.selectedTabText} 
      renderIcon={() => <Image style={styles.icon} source={require("../images/book_gray.png")} />} 
      renderSelectedIcon={() => <Image style={styles.icon} source={require("../images/book_red.png")} />} 
      onPress={() => this.setState({ selectedTab: '圖書' })}> 
      <BookPage /> 
     </TabNavigator.Item> 
     <TabNavigator.Item 
      selected={this.state.selectedTab === '我的'} 
      title="我的" 
      titleStyle={styles.tabText} 
      selectedTitleStyle={styles.selectedTabText} 
      renderIcon={() => <Image style={styles.icon} source={require("../images/my_gray.png")} />} 
      renderSelectedIcon={() => <Image style={styles.icon} source={require("../images/my_red.png")} />} 
      onPress={() => this.setState({ selectedTab: '我的' })}> 
      <MyPage /> 
     </TabNavigator.Item> 
    </TabNavigator> 
   </View> 
  ); 
 }

引入頁面組件:

import MoviePage from './pages/MoviePage';
import MusicPage from './pages/MusicPage';
import BookPage from './pages/BookPage';
import MyPage from './pages/MyPage';

設(shè)置state狀態(tài)機(jī):

constructor(props){
 super(props);
 this.state = {
  selectedTab:'電影'
 }
}

引入基本樣式:

const styles = StyleSheet.create({
 container:{
 flex:1,
 backgroundColor:'#fff'
 },
 tabText:{
 color:'#000000',
 fontSize:10
 },
 selectedTabText:{
 color:'#D81E06'
 },
 icon:{
 width:20,
 height:20
 }
})

這個(gè)時(shí)候效果已經(jīng)出來了,我們繼續(xù)抽象組件:

將每一個(gè)欄目抽出來放到一個(gè)統(tǒng)一的方法中:

_renderTabarItems(selectedTab,icon,selectedIcon,Component){
 return (
  <TabNavigator.Item
   selected={this.state.selectedTab === selectedTab} 
   title={selectedTab} 
   titleStyle={styles.tabText} 
   selectedTitleStyle={styles.selectedTabText} 
   renderIcon={() => <Image style={styles.icon} source={icon} />} 
   renderSelectedIcon={() => <Image style={styles.icon} source={selectedIcon} />} 
   onPress={() => this.setState({ selectedTab: selectedTab })}
  >
   <Component />
  </TabNavigator.Item>
 )

 }

此時(shí),render方法中就直接引用四個(gè)方法即可:

render() {
 return (
  <View style={styles.container}>
  <TabNavigator>
   {this._renderTabarItems('電影',require('../img/movie_gray.png'),require('../img/movie_red.png'),MoviePage)}
   {this._renderTabarItems('音樂',require('../img/music_gray.png'),require('../img/music_red.png'),MusicPage)}
   {this._renderTabarItems('圖書',require('../img/book_gray.png'),require('../img/book_red.png'),BookPage)}
   {this._renderTabarItems('我的',require('../img/my_gray.png'),require('../img/my_red.png'),MyPage)}
  </TabNavigator>
  </View>
 );
 }

至此,已經(jīng)初步完成。

組件的屬性集合:

Props

TabNavigator props

prop default type description
sceneStyle inherited object (style) 場景樣式,即Tab頁容器的樣式,可按View的style設(shè)置
tabBarStyle inherited object (style) TabBar的樣式,基本也可按照普通的style寫法進(jìn)行設(shè)置
tabBarShadowStyle inherited object (style) TabBar陰影的樣式,不過對于扁平化的設(shè)計(jì),這個(gè)屬性應(yīng)該用處不大
hidesTabTouch false boolean bool類型,即是否隱藏Tab按鈕的按下效果

TabNavigator.Item props

prop default type description
renderIcon none function 即圖標(biāo),但為function類型,所以這里需要用到Arrow Function
renderSelectedIcon none function 選中狀態(tài)的圖標(biāo),非必填,也是function類型
badgeText none string or number 即Tab右上角的提示文字,可為String或Number,類似QQ中Tab右上角的消息提示,非必填
renderBadge none function 提示角標(biāo)渲染方式,function類型,類似render的使用,非必填
title none string 標(biāo)題,String類型,非必填
titleStyle inherited style 標(biāo)題樣式,style類型,非必填
selectedTitleStyle none style 選中標(biāo)題樣式,style類型,非必填
tabStyle inherited style styling for tab
selected none boolean bool型,是否選中狀態(tài),可使用setState進(jìn)行控制,默認(rèn)false
onPress none function 即點(diǎn)擊事件的回調(diào)函數(shù),這里需要控制的是state
allowFontScaling false boolean bool型,是否允許字體縮放,默認(rèn)false

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • React簡便獲取經(jīng)緯度信息的方法詳解

    React簡便獲取經(jīng)緯度信息的方法詳解

    在現(xiàn)代的Web應(yīng)用程序中,獲取用戶的地理位置信息是一項(xiàng)常見的需求,本文我們將介紹如何在React應(yīng)用程序中簡便地獲取用戶的經(jīng)緯度信息,需要的可以參考下
    2023-11-11
  • react調(diào)試和測試代碼的小技巧

    react調(diào)試和測試代碼的小技巧

    在開發(fā)React應(yīng)用時(shí),嚴(yán)格模式StrictMode可以幫助開發(fā)者捕捉到組件中的錯(cuò)誤和潛在問題,安裝React Developer Tools瀏覽器擴(kuò)展檢查組件的props和狀態(tài),直接修改以及分析性能,@testing-library/react和Cypress或Playwright等工具可以有效地測試React組件和執(zhí)行端到端測試
    2024-10-10
  • useEffect支持async及await使用方式

    useEffect支持async及await使用方式

    這篇文章主要為大家介紹了useEffect支持async及await的使用方式示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • react實(shí)現(xiàn)數(shù)據(jù)監(jiān)聽方式

    react實(shí)現(xiàn)數(shù)據(jù)監(jiān)聽方式

    這篇文章主要介紹了react實(shí)現(xiàn)數(shù)據(jù)監(jiān)聽方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • React?中使用?Redux?的?4?種寫法小結(jié)

    React?中使用?Redux?的?4?種寫法小結(jié)

    這篇文章主要介紹了在?React?中使用?Redux?的?4?種寫法,Redux 一般來說并不是必須的,只有在項(xiàng)目比較復(fù)雜的時(shí)候,比如多個(gè)分散在不同地方的組件使用同一個(gè)狀態(tài),本文就React使用?Redux的相關(guān)知識(shí)給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2022-06-06
  • React 數(shù)據(jù)獲取條件競爭原理解析

    React 數(shù)據(jù)獲取條件競爭原理解析

    這篇文章主要為大家介紹了React 數(shù)據(jù)獲取條件競爭原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • React實(shí)現(xiàn)createElement 和 cloneElement的區(qū)別

    React實(shí)現(xiàn)createElement 和 cloneElement的區(qū)別

    本文詳細(xì)介紹了React中React.createElement和React.cloneElement兩種方法的定義、用法、區(qū)別及適用場景,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-09-09
  • 淺談react性能優(yōu)化的方法

    淺談react性能優(yōu)化的方法

    這篇文章主要介紹了淺談react性能優(yōu)化的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-09-09
  • 使用React Profiler進(jìn)行性能優(yōu)化方案詳解

    使用React Profiler進(jìn)行性能優(yōu)化方案詳解

    在現(xiàn)代前端開發(fā)中,性能優(yōu)化是一個(gè)不可忽視的重要環(huán)節(jié),在 React 生態(tài)系統(tǒng)中,React Profiler 是一個(gè)強(qiáng)大的工具,下面我們來看看如何使用它來提升我們的 React 應(yīng)用吧
    2025-03-03
  • react中的useContext具體實(shí)現(xiàn)

    react中的useContext具體實(shí)現(xiàn)

    useContext是React提供的一個(gè)鉤子函數(shù),用于在函數(shù)組件中訪問和使用Context,useContext的實(shí)現(xiàn)原理涉及React內(nèi)部的機(jī)制,本文給大家介紹react中的useContext具體實(shí)現(xiàn),感興趣的朋友一起看看吧
    2023-11-11

最新評論

平远县| 集贤县| 梓潼县| 墨竹工卡县| 冕宁县| 新平| 柏乡县| 新绛县| 富锦市| 乐清市| 盐津县| 横峰县| 乌苏市| 宁南县| 阿克| 巴林右旗| 河池市| 小金县| 屯留县| 界首市| 遂平县| 乌海市| 申扎县| 陆良县| 温泉县| 扎赉特旗| 峨边| 班玛县| 芷江| 绍兴县| 天台县| 贡嘎县| 宜宾市| 赤峰市| 通山县| 嘉善县| 新化县| 铁岭市| 庆元县| 神木县| 北海市|