- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我知道以前有人问过这个问题,但只针对旧版本的 react-navigation。从那时起,一些事情发生了变化。 createBottomTabNavigator
可以更快地创建底部导航器,函数 jumpToIndex()
不再存在。
我的问题是如何创建一个类似 Instagram 的底部选项卡,其中第一个、第二个、第四个和第五个导航按钮的作用与通常的选项卡导航器一样,中间按钮 (screen3
) 打开模态 screen3Modal
.
我已经在 react-navigation 3.x.x 中尝试过,使用 createBottomTabNavigator
和 createStackNavigator
。
import React, { Component, } from 'react';
import { createBottomTabNavigator, createStackNavigator, createAppContainer, } from 'react-navigation';
import { Screen1, Screen2, Screen3, Screen4, Screen5 } from './screens';
const TabNavigator = createBottomTabNavigator({
screen1: { screen: Screen1, },
screen2: { screen: Screen2, },
screen3: {
screen: () => null,
navigationOptions: () => ({
tabBarOnPress: () => this.props.navigation.navigate('screen3Modal')
})
},
screen4: { screen: Screen4, },
screen5: { screen: Screen5, },
});
const StackNavigator = createStackNavigator({
Home: { screen: TabNavigator },
screen3Modal: { screen: Screen3, },
},
{
initialRouteName: 'Home',
});
const StackNavigatorContainer = createAppContainer(StackNavigator);
export default class App extends Component {
render() {
return <StackNavigatorContainer />;
}
}
此代码创建选项卡导航和模态导航。模式可以从另一个屏幕打开,但它在选项卡导航器中不起作用。我收到错误消息 undefined is not an object (evaluating '_this.props.navigation')
最佳答案
我找到了一个相对简单的解决方案:用display:"none"
const TabNavigator = createBottomTabNavigator(
{
screen1: Screen1,
screen2: Screen2,
screen4: Screen4,
screen5: Screen5,
}, {
tabBarOptions: {
style: { display: "none", }
}
},
);
const StackNavigator = createStackNavigator(
{
Home: TabNavigator,
screen3: Screen3
}, {
mode: 'modal',
}
)
export default createAppContainer(StackNavigator);
并在每个屏幕上创建一个新的导航栏
<View style={{ flexDirection: "row", height: 50, justifyContent: "space-evenly", alignItems: "center", width: "100%" }}>
<TouchableOpacity onPress={() => this.props.navigation.navigate("screen1")}><Text>1</Text></TouchableOpacity>
<TouchableOpacity onPress={() => this.props.navigation.navigate("screen2")}><Text>2</Text></TouchableOpacity>
<TouchableOpacity onPress={() => this.props.navigation.navigate("screen3")}><Text>3</Text></TouchableOpacity>
<TouchableOpacity onPress={() => this.props.navigation.navigate("screen4")}><Text>4</Text></TouchableOpacity>
<TouchableOpacity onPress={() => this.props.navigation.navigate("screen5")}><Text>5</Text></TouchableOpacity>
</View>
关于javascript - react 导航 3 : Open modal with createBottomTabNavigator and createStackNavigator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54705813/
我正在构建我的第一个练习应用程序,并尝试使用 createAppNavigator 在屏幕之间组合导航。 但是,一旦我尝试使用 createAppNavigator我收到以下错误。 . 相关代码: A
我在 react-native 项目中导入堆栈导航器时遇到问题。我正在使用 JSX 语法。我在下面发布了有关该项目的信息,我希望这些信息与找到此问题的解决方案有关。 以下代码执行导入。它位于一个名为
尝试了很多方法,都没有找到很好的嵌套createDrawerNavigator createBottomTabNavigator createStackNavigator的方案 现在 抽屉(creat
场景: 我有一个应用程序,可使用三个导航选项卡(学校、管理员、家庭); 我现在正在尝试添加其他屏幕,这些屏幕不会有相应的选项卡。这些屏幕将使用类似 this.props.navigation.navi
我想在 ReactNative 上创建一个简单的导航示例。 下面是一段代码; import React, { Component } from 'react'; import { Button, Vi
我正在使用 createStackNavigator内createBottomTabNavigator来自 react-navigation在我的应用程序中。我想在我的屏幕上有一个标题。关注 Reac
我当前的代码 App.js import React from 'react'; import AuthenticationNavigator from 'app/src/navigations/Au
我当前的代码 App.js import React from 'react'; import AuthenticationNavigator from 'app/src/navigations/Au
我在我的应用程序中使用React Navigation。我在标题中使用 createBottomTabNavigator 创建了 createStackNavigator 我试图访问我从屏幕传递的参数
在过去的几天里,我一直在为我的屏幕添加一个动画标题。我在这方面取得了成功,但是我现在想默认将其用作我的标题,而不是将代码复制并粘贴到我希望使用它的所有屏幕中。目前,动画标题在屏幕中实现如下: 要呈现标
我使用 React Navigation 作为我的应用程序的导航器组件。我想更改堆栈导航器的字体系列。目前我这样做是为了更改 iOS 中的字体系列,并且效果很好: const LoggedInStac
我在我的项目中使用了 react-navigation,并弹出此错误。 我用谷歌搜索了这个错误信息,没有找到结果。 (我还不能发图片) 错误信息如下: `createStackNavigator()`
我有一个顶级 App.js 的 react-native 应用程序,即: import { createStackNavigator } from 'react-navigation'; class
当我使用 createStackNavigator 直接指定 drawerLockMode 时,它不起作用。 const drawerStack = createStackNavigator({
我创建了以下代码以导入到 app.js 中 import React from "react"; import { View } from "react-native"; import { creat
请查看 expo snack . 我有一个用于登录和未登录状态的切换导航器。 当用户登录时,切换器加载 DrawerNavigator加载 Screen1并通过 contentComponent 加载
我知道以前有人问过这个问题,但只针对旧版本的 react-navigation。从那时起,一些事情发生了变化。 createBottomTabNavigator 可以更快地创建底部导航器,函数 jum
更新: Git Repo of NotWorkingProject 尝试使用 react-navigation 包在 React Native(Expo-Typescript) 与我们处理常规 Rea
我正在使用 React Native 和 TypeScript 编写应用程序,并使用 React Navigation 进行路由。 在我下载的示例项目中,他们使用 StackNavigator({..
我是一名优秀的程序员,十分优秀!