React Navigation库实现React Native路由的示例代码:
1. 首先,安装React Navigation库:
npm install @react-navigation/native
npm install react-native-reanimated react-native-gesture-handler react-native-screens react-native-safe-area-context @react-native-community/masked-view
2. 在项目中创建一个StackNavigator:
import React from 'react';
import { createStackNavigator } from '@react-navigation/stack';
import { NavigationContainer } from '@react-navigation/native';
import HomeScreen from './HomeScreen';
import DetailScreen from './DetailScreen';
const Stack = createStackNavigator();
function App() {
return (
<NavigationContainer>
<Stack.Navigator
initialRouteName="HomeScreen"
screenOptions={{
headerStyle: {
backgroundColor: '#3f51b5',
},
headerTintColor: '#fff',
headerTitleStyle: {
fontWeight: 'bold',
},
}}>
<Stack.Screen
name="HomeScreen"
component={HomeScreen}
options={{
title: 'Home',
}}
/>
<Stack.Screen
name="DetailScreen"
component={DetailScreen}
options={{
title: 'Detail',
}}
/>
</Stack.Navigator>
</NavigationContainer>
);
}
export default App;
3. 创建HomeScreen和DetailScreen组件:
import React from 'react';
import { View, Text, Button } from 'react-native';
function HomeScreen({ navigation }) {
return (
<View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
<Text>Home Screen</Text>
<Button
title="Go to Detail Screen"
onPress={() => navigation.navigate('DetailScreen')}
/>
</View>
);
}
function DetailScreen() {
return (
<View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
<Text>Detail Screen</Text>
</View>
);
}
export { HomeScreen, DetailScreen };
4. 运行程序:
import { AppRegistry } from 'react-native';
import App from './App';
import { name as appName } from './app.json';
AppRegistry.registerComponent(appName, () => App);
在每个屏幕中,可以通过navigation对象进行导航(在HomeScreen中使用了Button组件,通过onPress属性实现了调用navigation.navigate方法)。 运行程序后,可以在home screen中点击"Go to Detail Screen"按钮进入Detail Screen。