如何在React Native上将Button添加到BottomTabNavigator?

时间:2020-09-15 05:41:28

标签: react-native react-navigation react-navigation-v5

我的目标是同时为Home, Dashboard, and Album而不是SignIn设置顶部和底部导航栏。 这是要抓住的地方,我希望将按钮放在底部而不是顶部。

最后剩下的难题是如何向底部导航栏添加Sign In按钮。

障碍是,如果您编写<Tab.Screen name="Sign In component={SignIn} />并按下带有参数onPress={() => navigation.navigate('SignIn')}的按钮,它将导航到Tab.Screen而不是Stack.Screen

const Tab = createBottomTabNavigator();
function MyTabs() {
  return (
    <Tab.Navigator>
      <Tab.Screen name="Home" component={Home} />
      <Tab.Screen name="Dashboard" component={Dashboard} />
      <Tab.Screen name="Album" component={Album} />
    </Tab.Navigator>
  );
}

const Stack = createStackNavigator();
function MyStack() {
  return (
    <Stack.Navigator>
      <Stack.Screen options={{title: ''}} name="MyTabs" component={MyTabs} />
      <Stack.Screen name="SignIn" component={SignIn} />
    </Stack.Navigator>
  );
}

export default function App() {
  return (
    <Provider store={store}>
      <NavigationContainer>
        <MyStack />
      </NavigationContainer>
    </Provider>
  );
}

1 个答案:

答案 0 :(得分:1)

您可以使用如下所示的选项卡按钮。这样可以传递道具并呈现出touchableopacity,您可以拥有自己的onPress。

您可以导航,这里我已发出警报

    <Tab.Screen name="Settings"  
         options={({navigation})=> ({
           tabBarButton:props => <TouchableOpacity {...props} onPress={()=>navigation.navigate('SignIn')}/>
    })}/>