Guest User

Untitled

a guest
May 22nd, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.19 KB | None | 0 0
  1. const packageName = 'com.rnplayground';
  2.  
  3. class FirstTab extends React.Component {
  4. render(){
  5. console.log(this.props)
  6. return(
  7. <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
  8. <Text>FirstTab</Text>
  9. </View>
  10. )
  11. };
  12. }
  13.  
  14. class SecondTab extends React.Component {
  15.  
  16.  
  17. render(){
  18. console.log(this.props)
  19. return(
  20. <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
  21. <Text>SecondTab</Text>
  22. </View>
  23. )
  24. };
  25. }
  26.  
  27. class ThirdTab extends React.Component {
  28.  
  29.  
  30. render(){
  31. console.log(this.props)
  32. return(
  33. <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
  34. <Text>ThirdTab</Text>
  35. </View>
  36. )
  37. };
  38. }
  39.  
  40.  
  41. class DrawerScreen extends React.Component {
  42.  
  43. render(){
  44. const {tabs} = this.props;
  45. return(
  46. <View style={styles.navigationContainer}>
  47. {tabs.map((route, index) => {
  48. const navigationLabel = route.title;
  49.  
  50. return (
  51. <TouchableHighlight
  52. key={route.screen}
  53. onPress={() => {
  54. this.props.navigator.switchToTab({
  55. tabIndex: index
  56. });
  57. }}
  58. underlayColor='blue'
  59. >
  60. <View style={styles.navigationItem}>
  61. <Text style={styles.navigationLabel}>
  62. {navigationLabel}
  63. </Text>
  64. </View>
  65. </TouchableHighlight>
  66. );
  67. })}
  68. </View>
  69. )
  70. };
  71. }
  72.  
  73. function registerScreens(){
  74. Navigation.registerComponent(`${packageName}.FirstTab`, () => FirstTab );
  75. Navigation.registerComponent(`${packageName}.SecondTab`, () => SecondTab );
  76. Navigation.registerComponent(`${packageName}.ThirdTab`, () => ThirdTab );
  77. Navigation.registerComponent(`${packageName}.DrawerScreen`, () => DrawerScreen );
  78. }
  79.  
  80. function startApp() {
  81. registerScreens();
  82.  
  83. const tabs = [
  84. {
  85. screen: `${packageName}.FirstTab`,
  86. title: 'FirstTab',
  87. icon: require('./image.png'),
  88. navigatorStyle: {
  89. tabBarHidden: true,
  90. },
  91. },
  92. {
  93. screen: `${packageName}.SecondTab`,
  94. title: 'SecondTab',
  95. icon: require('./image.png'),
  96. navigatorStyle: {
  97. tabBarHidden: true,
  98. },
  99.  
  100. },
  101. {
  102. screen: `${packageName}.ThirdTab`,
  103. title: 'ThirdTab',
  104. icon: require('./image.png'),
  105. navigatorStyle: {
  106. tabBarHidden: true,
  107. },
  108. },
  109. ];
  110.  
  111. Navigation.startTabBasedApp(
  112. {
  113. tabs: tabs,
  114. drawer: {
  115. left: {
  116. screen: `${packageName}.DrawerScreen`,
  117. passProps: {
  118. tabs: tabs
  119. },
  120. fixedWidth: 800,
  121. }
  122. },
  123. tabsStyle:{
  124. tabBarHidden: true,
  125. }
  126. },
  127. );
  128.  
  129. }
  130.  
  131. startApp();
  132.  
  133. const styles = StyleSheet.create({
  134. navigationContainer:{
  135. flex: 1,
  136. width: '100%',
  137. backgroundColor: 'white',
  138. },
  139.  
  140. navigationItem: {
  141. flex: 1,
  142. }
  143.  
  144. });
Add Comment
Please, Sign In to add comment