【发布时间】:2019-11-21 18:26:27
【问题描述】:
从顶部 Tabnavigator 导航到其他屏幕时遇到一些问题 所以我的应用导航是
抽屉中的我的订单屏幕 => 顶部 TabNavigatore(已接受/已完成)=> 订单详情
在 Route.js 中 我放了我想要的每一个导航,比如 Drawer - Auth 导航等等,我放了一个包含 Orders Screen 的 StackNavigator,如下所示:
const OrdersStack = createStackNavigator({
Orders: {
screen: Orders,
navigationOptions: ({ navigation }) => ({
headerLeft: (
// <TouchableOpacity onPress={() => navigation.dispatch(DrawerActions.toggleDrawer())}>
<TouchableOpacity
onPress={() => navigation.dispatch(DrawerActions.toggleDrawer())}
>
<Icon
name="ios-menu"
size={40}
style={{ margin: 10 }}
color="#2F98AE"
/>
</TouchableOpacity>
),
headerRight: <View />,
title: "My Orders",
headerTintColor: "#2F98AE",
headerStyle: {
borderBottomColor: "white"
},
headerTitleStyle: {
color: "#2F98AE",
// textAlign: "center",
flex: 1,
elevation: 0,
fontSize: 25
// justifyContent: "center"
}
})
}
});
我在 Orders.js 中放了这些:
import React, { Component } from "react";
import { createAppContainer, createStackNavigator } from "react-navigation";
import NavTabs from "../screens/NavTabs";
import NavOrderDetails from "../screens/NavOrderDetails";
// create a component
export default class Orders extends Component {
render() {
return <MyOrdersScreen />;
}
}
export const root = createStackNavigator({
NavTabs: NavTabs,
NavOrderDetails: NavOrderDetails
});
const MyOrdersScreen = createAppContainer(root);
正如我在 Orders.js 中提到的,它包含选项卡和订单详细信息
在选项卡中,我正在创建一个 createMaterialTopTabNavigator
import { createMaterialTopTabNavigator } from "react-navigation";
import AcceptedOrders from "../screens/AcceptedOrders";
import CompletedOrders from "../screens/CompletedOrders";
const MainTabs = createMaterialTopTabNavigator(
{
Accepted: { screen: AcceptedOrders },
Completed: { screen: CompletedOrders }
},
{
tabBarOptions: {
activeTintColor: "#fff",
inactiveTintColor: "#ddd",
tabStyle: {
justifyContent: "center"
},
indicatorStyle: {
backgroundColor: "#fcc11e"
},
style: {
backgroundColor: "#2F98AE"
}
}
}
);
export default MainTabs;
另一个屏幕是 OrderDeutils.js
import { createStackNavigator } from "react-navigation";
import OrderDetails from "../screens/OrderDetails";
import React, { Component } from "react";
import { View } from "react-native";
const OrderDetailsStack = createStackNavigator({
OrderDetails: {
screen: OrderDetails,
navigationOptions: () => ({
title: "Order Details",
headerRight: <View />,
headerTintColor: "#2F98AE",
headerStyle: {
borderBottomColor: "white"
},
headerTitleStyle: {
color: "#2F98AE",
flex: 1,
elevation: 0,
fontSize: 25
}
})
}
});
export default OrderDetailsStack;
这是一个屏幕截图,它应该解释我的意思
【问题讨论】:
-
不太了解您的问题,但如果您询问其他问题中的空白标题,您可以通过将
defaultNavigationOptions: {header: null}添加到名为root的堆栈导航器来隐藏它 -
是的,这就是我想要的,但是当我将它设置为 root 和订单详细信息的“header:null”时,它工作得很好,但是如果用户想返回!这不会发生,因为标题消失了:/ 如果我只是为根设置一个“标题:null”,并且在订单详细信息中我将看到两个标题(我的订单,订单详细信息)! @tuan.tran
-
您能否重命名文件名并发布这些文件的代码并提及名称,现在很混乱。很难调试。
-
我现在将一个标题隐藏起来,你能检查这个 Q @AshwinMothilal stackoverflow.com/questions/57065752/…
标签: javascript reactjs react-native redux react-navigation