react-native - 到达最后一个屏幕后对本机导航重置堆栈或选项卡做出反应
问题描述
大家,我对 react-native 有点概念。我在使用 react-navigation 时遇到问题。我的导航中有 2 个标签。在第一个选项卡中,我有 2 个屏幕(主页和供应商),在第二个选项卡中,我有 3 个屏幕(订单预览、订单确认、谢谢)。我第一次通过主页-> 供应商-> 订单预览-> 订单确认-> 谢谢。它的工作正常。第二次,当我通过 Home->Vendor->Thankyou(它直接移动到thankyou。)。我不确定,为什么我会得到这个。我正在分享我的代码。
我在文件中附加我的代码
请让我知道,如果我遗漏任何内容或为上述问题提出一些解决方案谢谢视频链接:https ://drive.google.com/file/d/12AMrm-HnNSv1r2TLmyAO-FE-34AchdR9/view?usp=sharing
import 'react-native-gesture-handler';
import React from "react";
import { Image } from "react-native";
import { TabBarItem } from "@components";
import { NavigationContainer } from '@react-navigation/native';
import { createStackNavigator } from '@react-navigation/stack';
import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
import { Constants, Colors, Icons, Styles } from "@common";
import HomeScreen from "./screens/HomeScreen";
import VendorScreen from "./screens/VendorScreen";
import OrderPreviewScreen from "./screens/OrderPreviewScreen";
import OrderConfirmScreen from "./screens/OrderConfirmScreen";
import OrderThankyouScreen from "./screens/OrderThankyouScreen";
/// Router File Code
const HomeStack = createStackNavigator();
function HomeStackScreen() {
return (
<HomeStack.Navigator initialRouteName="Home">
<HomeStack.Screen name="Home" component={HomeScreen} />
<HomeStack.Screen name="Vendor" component={VendorScreen} />
</HomeStack.Navigator>
);
}
const CartStack = createStackNavigator();
function CartStackScreen() {
return (
<CartStack.Navigator initialRouteName="OrderPreview">
<CartStack.Screen name="OrderPreview" component={OrderPreviewScreen} />
<CartStack.Screen name="OrderConfirm" component={OrderConfirmScreen} />
<CartStack.Screen name="OrderThankyou" component={OrderThankyouScreen} />
</CartStack.Navigator>
);
}
const Tab = createBottomTabNavigator();
function App() {
return (
<NavigationContainer>
<Tab.Navigator tabBarOptions={{activeTintColor: 'tomato', inactiveTintColor: 'gray', }} >
<Tab.Screen name="Home" component={HomeStackScreen} />
<Tab.Screen name="Cart" component={CartStackScreen} />
</Tab.Navigator>
</NavigationContainer>
);
}
export default App;
// Home Screen
showVendorDetail={vendor_ID=>navigation.push(Constants.Screen.Vendor,{vendor_ID})}
//Vendor Screen
showOrderPreview={()=>navigation.navigate("Cart",{screen:"OrderPreview"})}
//Order Preivew
showOrderConfirm={()=>navigation.push(Constants.Screen.OrderConfirm)}
// Order Confirm
showOrderThankyou={()=>navigation.push(Constants.Screen.OrderThankyou)}
// Order Thankyou
showHome={()=>navigation.navigate("Home",{ screen: 'Home' })}
解决方案
推荐阅读
- c - 如何将 CSV 文件中的数据存储到结构中,然后返回该结构
- java - 错误:不是实体。但@Entity 和 persistence.xml 正确
- python-3.x - 将docx文件转换为html python3
- python - numpy.matrix 和 np.asmatrix 有什么区别吗?
- c - 释放数据结构的错误方法
- azure - SAP BW 到 PowerBI 数据加载需要大量时间?
- ios - 快速从表视图和服务器中删除一行
- javascript - 使用 DELETE 方法单击表中的行时从 MySQL 中删除一条记录
- c++ - 将 MSVC 2017 添加到 Qt
- ios - 应用程序未在本地环境中访问 https 服务器