反应导航如何将TapNavigator嵌套在createAppContainer中

时间:2018-11-29 04:31:42

标签: javascript react-native navigation react-navigation

嗨,我正在尝试将createMaterialTopTabNavigator嵌套在createAppContainer内,但出现一个错误,提示我下面的代码是duplicate declaration App

import { createAppContainer, createMaterialTopTabNavigator } from 'react-navigation';
import { createMaterialBottomTabNavigator } from 'react-navigation-material-bottom-tabs';

export default class App extends Component {
  render(){
    return(
      <SafeAreaView style={{flex:1}}>
        <AppTabNavigator/>
      </SafeAreaView>
    )
  }
}

class HomeScreen extends Component {
  render(){
    return(
      <View>
        <Text>HomeScreen</Text>
      </View>
      )
  }
}

class SettingsScreen extends Component {
  render(){
    return(
      <View>
        <Text>SettingsScreen</Text>
      </View>
      )
  }
}

const AppTabNavigator = createMaterialTopTabNavigator({
  Home:{screen:HomeScreen},
  Settings:{ screen: SettingsScreen}
  })

const App = createAppContainer(AppTabNavigator)

这将给我一个错误,因为我重复了App。有什么想法吗? 任何建议或意见,将不胜感激!

1 个答案:

答案 0 :(得分:0)

我知道了。我犯了一个愚蠢的错误。应该是这样的:

export default class App extends Component {
  render(){
    return(
      <SafeAreaView style={{flex:1}}>
        <AppContainer />
      </SafeAreaView>
    )
  }
}

const AppTabNavigator = createMaterialTopTabNavigator({
  Home:{screen:HomeScreen},
  Settings:{ screen: SettingsScreen}
  })

const AppContainer = createAppContainer(AppTabNavigator)