reactnavigation 点击底部tab怎么传递参数?
可以通过在底部tab的onPress事件中调用navigation.navigate方法,并在第二个参数中传递参数来实现传递参数。
例如:
({
tabBarButton: (props) => (
{
console.log(props)
console.log(navigation)
// 传递参数
navigation.navigate('扫一扫', { page: 'aaa' });
}}
/>
),
})}
/>
在HomeScreen组件中可以通过route.params获取传递的参数。
例如:
function HomeScreen({ route }) {
const { param1, param2 } = route.params;
// 使用传递的参数
return (
{param1}
{param2}
);
}
Tab.Navigator 配置
Tab.Navigator是React Navigation中用于创建底部导航栏的组件,它可以通过一些配置来自定义底部导航栏的样式和行为。
以下是一些常用的Tab.Navigator配置:
initialRouteName:指定初始路由名称。
tabBarOptions:配置底部导航栏的样式和行为,例如颜色、图标、标签等。
screenOptions:配置每个Tab.Screen的默认选项,例如标题、图标等。
tabBarIcon:自定义底部导航栏图标的组件。
tabBarLabel:自定义底部导航栏标签的组件。
以下是一个示例代码:
import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
import { MaterialCommunityIcons } from '@expo/vector-icons';
const Tab = createBottomTabNavigator();
function MyTabs() {
return (
({
tabBarIcon: ({ focused, color, size }) => {
let iconName;
if (route.name === 'Home') {
iconName = focused
? 'home'
: 'home-outline';
} else if (route.name === 'Settings') {
iconName = focused ? 'settings' : 'settings-outline';
}
// You can return any component that you like here!
return ;
},
})}
>
);
}
在这个示例中,我们使用了MaterialCommunityIcons组件来自定义底部导航栏的图标,使用了activeTintColor和inactiveTintColor来配置选中和未选中状态下的颜色,使用了screenOptions来配置每个Tab.Screen的默认选项。