反应导航(TabNavigator)不起作用

React Navigation (TabNavigator) doesn't work

我在使用 React Navigation 时遇到 TabNavigator 的问题,没有看到第一个屏幕 (WelcomeScreen) 和屏幕底部的选项卡导航器,只有一个空屏幕。

我在该项目中完成了:"npm install --save react-navigation"。 我做错了什么?

import React from 'react';
import { StyleSheet, Text, View } from 'react-native';
import { TabNavigator, StackNavigator } from 'react-navigation';

import AuthScreen from './screens/AuthScreen';
import WelcomeScreen from './screens/WelcomeScreen';


export default class App extends React.Component {
  render() {
    const MainNavigator = TabNavigator({
        welcome: { screen: WelcomeScreen },
        auth: { screen: AuthScreen}
    });


    return (
      <View style={styles.container}>

          <MainNavigator/>
      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    backgroundColor: '#fff',
    alignItems: 'center',
    justifyContent: 'center',
  },
});

您犯的唯一错误是将 MainNaviagtor 包装在视图中,因此请删除主导航器顶部的包装器。

you need not to wrap your main router component in any tag.

您不需要导航器周围的包装器即可看到。我希望这能解决你的问题,如果不能让我知道:)

return MainNavigator 而不是用额外的视图包装,我也建议不需要在渲染中一遍又一遍地制作它。你可能甚至不需要这个包装 React 组件。

你的代码很好,你可以将主导航器包装到容器视图中。 为了将来您可以将更多组件添加到容器视图中,实际问题在于容器样式。通过删除 alignItems 和 JustifyContent 属性更改如下样式

const styles = StyleSheet.create({
  container: {
    flex: 1,
    backgroundColor: '#fff'
  }
})

它将解决这个问题。我试过它有效。

https://repl.it/L6S8/0