- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
TL;DR:我需要这个结果(使用下面列出的 DrawerNavigator 和 StackNavigator 导航):
我有这样的屏幕结构:
在根页面(由“•”表示)中,我需要使用 DrawerNavigator 完成导航,而子页面(由“|_”表示)需要使用StackNavigator。
这是我想要得到的行为:
• Account
|_ Create Account
|_ Login
|_ Forget Password
• Products
|_ Product detail
|_ Ingredients
• Configuration
• About
• Cart
|_ Checkout
|_ Finish Checkout
抽屉:MainDrawer with => createDrawerNavigator()
• Account
• Products
• Configuration
• About
• Cart
切换导航器:
Start: StartCheck, // Screen component
App: MainDrawer, // Drawer
Welcome: WelcomeScreen, // Screen component
组件:StartCheck 和WelcomeScreen 是一个 <Component />
StartCheck: this just check if have data on AsyncStorage, something like "isFirstRun", and open WelcomeScreen or MainDrawer according of result [like this documentation].
屏幕:
const Screens = {
account: {
screen: AccountScreen,
path: 'account'
},
products: {
screen: ProductsScrren,
path: 'products'
},
configuration: {
screen: ConfigurationScrren,
path: 'configuration'
},
about: {
screen: AboutScrren,
path: 'about'
},
cart: {
screen: CartScrren,
path: 'cart'
},
};
主抽屉:
const MainDrawer = createDrawerNavigator({
...Screens
}, {
contentComponent: Sidebar,
initialRouteName: 'products',
});
带有 SwitchNavigator 的应用容器:
const AppContainer = createAppContainer(createSwitchNavigator(
{
StartCheck: StartCheck, // Component
App: MainDrawer, // Drawer
Welcome: WelcomeScreen, // Component
},
{
initialRouteName: 'StartCheck',
}
));
export default AppContainer;
使用这段代码,Header 不会出现,所以我将 DrawerNavigator 放在 StackNavigator 中:
主堆栈:
const MainStack = createStackNavigator({
MainDrawer
});
然后我用 SwitchNavigator 修改 App Container:
const AppContainer = createAppContainer(createSwitchNavigator(
{
StartCheck: StartCheck, // Component
App: MainStack, // Stack
Welcome: WelcomeScreen, // Component
},
{
initialRouteName: 'StartCheck',
}
));
export default AppContainer;
但这样一来,标题重叠侧边栏,如果我使用headerMode: 'none'
,我的标题也从其他屏幕上消失了(不仅仅是容器)。
我需要这个结果(上面有 DrawerNavigator 和 StackNavigator 导航列表):
而且我也不知道副屏放在哪里(用StackNavigator的导航方式打开)。
抱歉这个大帖子,是我尝试尽可能详细,因为我一直在寻找解决方案一段时间但我还没有找到...
最佳答案
我先以文字的形式描述一下我的想法:
在您的“开始”屏幕完成其工作后,您将进入抽屉导航器,这是您的根节点
要一直显示标题
所有 StackNavigator 都附带 header ///用于在堆栈中呈现的屏幕。
对于像“关于”屏幕这样的纯组件,您可以创建自定义 header 并在这些组件中手动添加它。
或“我认为不推荐”
在 stacknavigator 中渲染每个纯屏幕,例如关于屏幕,只是为了节省您创建自定义标题的时间。
const MainDrawer = createDrawerNavigator({
Account: AccountStack,
Product: ProductsStack,
Configuration: ConfigScreen, // Pure Component
About: AboutScreen, // Pure Component
Cart: CartStack
});
// Ex stack:
const AccountStack = createStackNavigator({
CreateAcount: SignUpScreen,
Login: LoginScreen,
ForgotPassword: ForgotPasswordScreen
});
关于javascript - 如何在 React Native 上将 StackNavigator 与 DrawerNavigator 和 SwitchNavigator 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55231182/
我在我的项目中使用 react 导航。我想在抽屉导航中使用堆栈导航。我想在堆栈导航屏幕中使用 this.navigation.toggleDrawer(),但不将其附加到堆栈导航屏幕中。 // dra
我是 React Native 和 React-Navigator 的新手,想实现这个设置: 我已经有 SignUpScreen,来自 SignUpScreen01 - SignUpScreen05,
我试图让一个屏幕在常规 StackNavigation 对象中充当模态。意思是,我希望所有屏幕都充当卡片(从侧面渲染),但一个屏幕充当模态(从底部渲染),但它不起作用,所有屏幕都从侧面渲染。 代码:
我想做一个简单的任务:成功登录后将用户重定向到他的主页。我使用react-navigation的StackNavigator来达到这个目的: // App.js class App extends C
在我的 React Native 应用程序中,我使用 React Navigation 库来实现导航。我在 StackNavigator 上构建了整个应用程序。现在我遇到了一个我不知道如何解决的问题。
编辑:我了解我的问题和解决方案,所以我改写我的问题,然后给出答案。 一个普通的 StackNavigator 和带有导航的屏幕看起来像这样: class ExampleScreen extends R
我目前在我的 React native 应用程序中使用 StackNavigator。 我有两个屏幕,它们都将导航到同一屏幕 LoginScreen。但是,根据我来自哪个屏幕,我想转到不同的屏幕。 例
如何在 StackNavigator 中更改动画的方向? 当前行为 当用户转到另一个屏幕时,屏幕从 飞出从下到上 . 预期行为 当用户转到另一个屏幕时,屏幕从 飞出从右到左 . (比如 Faceboo
我有用户列表,每个用户在列表中都有其显示图像。 我正在尝试的是,每当用户按下显示图像时,都会通过 stackNavigation 重定向到他/她的个人资料。 自定义TabView: const
我已经开始学习 react 原生,很棒的东西。我已经能够使用 StackNavigator 在屏幕之间导航。 在一个屏幕上,我显示一个由静态 json 文件填充的列表。单击一行后,应该会弹出下一个屏幕
我正在使用react-native,当我尝试使用StackNavigator导航到另一个页面时,上一个页面正在后台运行 这是 App.js import Login from './app/compo
这是我的App.js import React, {Component} from 'react'; import { createAppContainer } from 'react-navigat
我在使用 React-Native js 框架开发带有导航的应用程序时遇到了问题。我有一个 StackNavigator,它可以在登录页面和主页之间导航。但我不想让用户在按下电话按钮或通过屏幕栏上的按
好的,大家好,我有一个问题,我是 react 原生开发的新手,并且遇到了 StackNavigator 的问题。当我按下用于导航当前屏幕的按钮时,它会出现如下错误: enter image descr
我们在我们的 React Native 应用程序中遇到了一个非常奇怪的 react 导航场景,它只在 Android 上观察到(在模拟器和物理设备上 AND 用于调试构建和发布构建),但它在 iOS
我有一个带有三个选项卡的 TabNavigator。这三个选项卡中的每一个都是 StackNavigators。 如果用户单击同一个选项卡按钮两次,我如何才能将 StackNavigator 导航回来
我正在使用 React Navigation x5,我有 StackNavigator 正在加载一堆屏幕。我想在模糊上卸载一个特定的屏幕组件,以获得与使用 DrawerNavigator 时使用 un
这是包含我的抽屉的组件 export default class StackInView extends React.Component { render() { const Stack
我没有什么问题......我在 TabNavigator 中嵌套了 StackNavigator,例如: 表1 堆栈屏幕 Tab2 Tab3 Tab4 我想在选项卡 View 上保留滑动,但想在打开
我需要为 Navigation 5.0 中的堆栈导航器中的特定屏幕将导航动画更改为 bottom-to-top。 最佳答案 我在 StackOverflow 中寻找答案,但没有找到与单屏相关的解决方案
我是一名优秀的程序员,十分优秀!