react-native - 在 React Native 中导航到未使用 createBottomTabNavigator 定义的屏幕
问题描述
我正在尝试导航到我尚未定义的屏幕,createBottomTabNavigation
因为我不希望它显示在底部选项卡导航中。
为了尝试,我单独创建了组件:
class SingleScreen extends React.Component {
render() {
return (
<View>
<Text>This is sigle screen</Text>
</View>
);
}
}
要导航到此屏幕:
render () {
const {navigate} = this.props.navigation;
return(
<TouchableHighlight onPress={() => navigate('SingleScreen', {id: 'id', from: 'Search'})}>
//Code
</TouchableHighlight>
);
}
但不工作。我必须用 来描述这个屏幕createBottomTabNavigator
吗?如果是这样,是否可以隐藏在标签栏上?
解决方案
您需要在 app.js 中进行一些更改。在 createStackNavigator 中添加 createBottomTabNavigator。将那些组件添加到您不想添加到底部选项卡导航器的 stacknavigator 中。在 createBottomTabNavigator 中添加要在标签栏中显示的组件
请检查以下代码
import React, { Component } from "react";
import {
Platform,
StyleSheet,
Text,
View,
SafeAreaView,
ScrollView,
Dimensions
} from "react-native";
import { createStackNavigator, createDrawerNavigator } from "react-navigation";
import LoginScreen from "./Screens/LoginScreen";
export default class App extends Component {
render() {
return <StackNav />;
}
}
const StackNav = createStackNavigator(
{
TabNavigator: {
screen: AppTabNavigator,
navigationOptions: {
headerMode: "none",
header: null
}
},
SingleScreen: {
screen: SingleScreen,
navigationOptions: {
headerMode: "none",
header: null
}
},
SecondScreen: {
screen: SecondScreen,
navigationOptions: {
headerMode: "none",
header: null
}
}
},
{
initialRouteName: "TabNavigator"
}
);
const AppTabNavigator = createBottomTabNavigator({
Login: {
screen: LoginScreen
}
});
推荐阅读
- spring-boot - Spring Boot Servlet 注册
- python - 如何在 mosek.fusion.Model 中提取表达式?
- angularjs - angularjs 材料多余的行和长字会创建错误的布局
- date - 如何将多种格式的csv文件中的日期插入hive表的列(其数据类型为日期,即'yyyy-mm-dd')
- r - 各组累计最小值
- sorting - 推力 sort_by_key 的意外行为
- ngrx - ngrx 实体适配器 addAll 和嵌套状态
- angular - 为 rxdb 中的 ref 字段添加索引
- python - 从列表列表中删除列表 Python
- git - 如何为只读 git 访问设置 ssh 密钥