首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用参数从堆栈导航器导航到选项卡导航器

在React Navigation中,你可以通过传递参数从堆栈导航器(Stack Navigator)导航到选项卡导航器(Tab Navigator)。以下是一个示例,展示如何实现这一点。

安装React Navigation

首先,确保你已经安装了React Navigation及其所需的依赖项。

代码语言:javascript
复制
npm install @react-navigation/native
npm install @react-navigation/stack
npm install @react-navigation/bottom-tabs
npm install react-native-screens react-native-safe-area-context

设置导航容器

在你的主文件(例如 App.js)中,设置导航容器并配置堆栈导航器和选项卡导航器。

代码语言:javascript
复制
import * as React from 'react';
import { NavigationContainer } from '@react-navigation/native';
import { createStackNavigator } from '@react-navigation/stack';
import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
import { Button, Text, View } from 'react-native';

const Stack = createStackNavigator();
const Tab = createBottomTabNavigator();

function HomeScreen({ navigation }) {
  return (
    <View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
      <Text>Home Screen</Text>
      <Button
        title="Go to Tabs"
        onPress={() => navigation.navigate('Tabs', { screen: 'Tab1', params: { userId: 123 } })}
      />
    </View>
  );
}

function Tab1Screen({ route }) {
  const { userId } = route.params;
  return (
    <View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
      <Text>Tab 1 Screen</Text>
      <Text>User ID: {userId}</Text>
    </View>
  );
}

function Tab2Screen() {
  return (
    <View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
      <Text>Tab 2 Screen</Text>
    </View>
  );
}

function Tabs() {
  return (
    <Tab.Navigator>
      <Tab.Screen name="Tab1" component={Tab1Screen} />
      <Tab.Screen name="Tab2" component={Tab2Screen} />
    </Tab.Navigator>
  );
}

export default function App() {
  return (
    <NavigationContainer>
      <Stack.Navigator>
        <Stack.Screen name="Home" component={HomeScreen} />
        <Stack.Screen name="Tabs" component={Tabs} />
      </Stack.Navigator>
    </NavigationContainer>
  );
}

解释

  1. HomeScreen:这是堆栈导航器中的一个屏幕。它包含一个按钮,点击按钮时会导航到选项卡导航器,并传递参数。
  2. Tab1Screen:这是选项卡导航器中的一个屏幕。它接收从堆栈导航器传递过来的参数,并显示在屏幕上。
  3. Tab2Screen:这是选项卡导航器中的另一个屏幕。
  4. Tabs:这是选项卡导航器,包含 Tab1ScreenTab2Screen
  5. App:这是主组件,包含导航容器和堆栈导航器。

传递参数

HomeScreen 中,使用 navigation.navigate 方法导航到选项卡导航器,并传递参数:

代码语言:javascript
复制
onPress={() => navigation.navigate('Tabs', { screen: 'Tab1', params: { userId: 123 } })}

Tab1Screen 中,通过 route.params 获取传递的参数:

代码语言:javascript
复制
const { userId } = route.params;
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券