React Native中Navigator的安装与使用

一、安装Navigator

1.安装react-native-deprecated-custom-components

npm install react-native-deprecated-custom-components  --save 

2.若npm安装报错,则执行下面命令

npm i react-native-deprecated-custom-components  --save

3.若还未解决则使用yarn命令(前提是自己有yarn的配置环境)

yarn add react-native-deprecated-custom-components  --save 

二、使用Navigator

说明:本demo为男生给女生送一枝玫瑰,女生回赠巧克力。包含了父子组件的通信

1.引入Navigator

import {Navigator} from "react-native-deprecated-custom-components" 

2.页面A(用于放置父组件Boy和子组件Girl):

<Navigator
                initialRoute={{
                    //Boy为默认显示组件
                    component: Boy
                }}
                renderScene={(route,navigator)=>{
                    let Component = route.component;
                    return <Component navigator={navigator} {...route.params}/>
                }}
            ></Navigator>

3.父组件Boy(父组件):

<View style={styles.container}>
                <Text style={styles.text}>I am Boy</Text>
                <Text
                    style={styles.text}
                    onPress={
                        ()=>{
                            this.props.navigator.push({
                                component:Girl,
                                params:{
                                    word:'一枝玫瑰',
                                    onCallBack:(word)=>{
                                        this.setState({
                                            word:word
                                        })
                                    }
                                }
                            })
                        }
                    }
                >送女孩一支玫瑰</Text>
                <Text style={styles.text}>{this.state.word}</Text>
            </View>

4.子组件Girl(子组件):

<View style={styles.container}>
                <Text style={styles.text}>
                    I am Girl.
                </Text>
                <Text style={styles.text}>
                    我收到了男孩送的玫瑰{this.props.word}
                </Text>
                <Text
                    style={styles.text}
                    onPress={
                        ()=>{
                            this.props.onCallBack('一盒巧克力');
                            //删除组件
                            this.props.navigator.pop()
                        }
                    }
                >
                    回赠巧克力
                </Text>
            </View>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
React Native 的路由可以使用以下几个库来实现: 1. React NavigationReact NavigationReact Native 最流行的路由库之一,它提供了多种路由类型和导航器,例如 Stack Navigator(堆栈导航)、Tab Navigator(标签导航)和 Drawer Navigator(抽屉导航)等。 2. React Native NavigationReact Native Navigation 是一个由 Wix 开发的路由库,它提供了原生级别的性能和体验。它支持多个平台,并且提供了多种导航器及其配置选项。 3. React Native Router Flux:React Native Router Flux 是一个基于 React Navigation 的路由库,它提供了类似于 React Router 的 API,使用起来比较方便。 下面是一个使用 React Navigation 的示例: 首先安装 React Navigation: ``` npm install @react-navigation/native ``` 然后安装 Stack Navigator: ``` npm install @react-navigation/stack ``` 在 App.js 配置 Stack Navigator: ```javascript import { NavigationContainer } from '@react-navigation/native'; import { createStackNavigator } from '@react-navigation/stack'; import HomeScreen from './screens/HomeScreen'; import DetailScreen from './screens/DetailScreen'; const Stack = createStackNavigator(); function App() { return ( <NavigationContainer> <Stack.Navigator> <Stack.Screen name="Home" component={HomeScreen} /> <Stack.Screen name="Detail" component={DetailScreen} /> </Stack.Navigator> </NavigationContainer> ); } export default App; ``` 在 HomeScreen.js 实现页面跳转: ```javascript import React from 'react'; import { Button } from 'react-native'; import { useNavigation } from '@react-navigation/native'; function HomeScreen() { const navigation = useNavigation(); return ( <Button title="Go to detail screen" onPress={() => { navigation.navigate('Detail'); }} /> ); } export default HomeScreen; ``` 在 DetailScreen.js 实现返回: ```javascript import React from 'react'; import { Button } from 'react-native'; import { useNavigation } from '@react-navigation/native'; function DetailScreen() { const navigation = useNavigation(); return ( <Button title="Go back" onPress={() => { navigation.goBack(); }} /> ); } export default DetailScreen; ``` 这样就完成了一个简单的路由示例,点击 HomeScreen 上的按钮可以跳转到 DetailScreen,DetailScreen 上的按钮可以返回 HomeScreen。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值