反应原生导航在屏幕之间移动

Posted

技术标签:

【中文标题】反应原生导航在屏幕之间移动【英文标题】:react native navigation move between screens 【发布时间】:2020-05-11 20:57:37 【问题描述】:

我正在使用最新的 react 原生导航并尝试从我的图标进入下一个屏幕。没有运气。我试图将一个函数传递到我的代码中,但我无处可去。我知道这很简单,我可能只是缺少一个简单的 sn-p 来完成这项工作。请看下文。有谁知道如何正确编写导航。

我的问题是堆栈屏幕“ProductOverViewScreen”。

import * as React from 'react';
import  createStackNavigator, createAppContainer  from '@react-navigation/stack';
import  NavigationContainer  from '@react-navigation/native';
import  HeaderButtons, Item  from 'react-navigation-header-buttons';
import 'react-native-gesture-handler';
import  Platform, Button  from 'react-native';
import  Ionicons  from '@expo/vector-icons';

import ProductsOverViewScreen from '../screens/shop/ProductOverViewScreen';
import ProductDetailScreen from '../screens/shop/ProductDetailScreen';
import CartScreen from '../screens/shop/CartScreen';
import Color from '../constants/Color';
import HeaderButton from '../components/UI/HeaderButton';

const Stack = createStackNavigator();



const newScreen = (navigation) => 
    navigation.navigate('CartScreen');


function ShopNavigator()
    return(
    <NavigationContainer>
    <Stack.Navigator
        screenOptions=
            headerStyle: 
                backgroundColor: Platform.OS === 'android' ? Color.primary : ''
            ,     
            headerTitleStyle: 
                fontFamily: 'open-sans-bold'
            ,
            headerBackTitleStyle: 
                fontFamily: 'open-sans'
            ,
            headerTintColor: Platform.OS === 'android' ? 'white' : Color.primary,
        
        >
    <Stack.Screen 
        name="ProductsOverViewScreen" 
        component=ProductsOverViewScreen
        options=
            headerRight: ( navigation) =>  (
                <Button
                onPress=() => navigation.navigate('CartScreen')
                title="Cart"
                color='black'
              />
            ),
        
        />
    <Stack.Screen 
        name="ProductDetailScreen" 
        component=ProductDetailScreen 
        options=(route) => (title: route.params.productTitle)
        />
    <Stack.Screen 
        name="CartScreen" 
        component=CartScreen 
        />
    </Stack.Navigator>
    </NavigationContainer>
    );



export default ShopNavigator;

【问题讨论】:

【参考方案1】:

我想通了。希望这对其他人有所帮助。在如下选项中添加导航。

options=(导航, 路线) => ( headerRight: () => 返回(

            <TouchableHighlight onPress=() => navigation.navigate('CartScreen')>
                <Text>Test</Text>
            </TouchableHighlight>
        );
            

        )
    />

【讨论】:

以上是关于反应原生导航在屏幕之间移动的主要内容,如果未能解决你的问题,请参考以下文章

反应原生按钮点击移动到另一个屏幕

如何修复反应导航从屏幕顶部移动我的组件?

离子/ cordova与2020年原生反应

相机不显示,状态转换问题,反应原生

反应原生检查平板电脑或屏幕是不是以英寸为单位

如何准备下一个屏幕才能反应原生导航?