react-native - 仅在登录后才反应本机抽屉
问题描述
我这里有小吃链接
https://snack.expo.io/@mparvez19861/drawer-navigation?session_id=snack-session-hyLuO4xPa
我试图仅在用户登录时显示抽屉,登录时不会有任何抽屉。
请帮忙
谢谢
解决方案
您可以通过将 Drawer Navigator 包装在 Switch Navigator 中来完成此操作。登录后,Switch Navigator 将从登录屏幕(只是一个屏幕)切换到主 App 屏幕(使用 初始化createDrawerNavigator
)。
import React, { Component } from 'react';
import { View, Text, TouchableOpacity, StyleSheet } from 'react-native';
import {
createSwitchNavigator,
createStackNavigator,
createAppContainer,
createDrawerNavigator,
} from 'react-navigation';
class Screen extends Component {
render() {
return (
<View style={styles.container}>
<Text>Screen</Text>
</View>
);
}
}
class AuthScreen extends Component {
render() {
return (
<View style={styles.container}>
<Text>Auth Screen</Text>
<TouchableOpacity onPress={() => this.props.navigation.navigate('App')}>
<Text>Login</Text>
</TouchableOpacity>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
marginTop: 40,
justifyContent: 'center',
alignItems: 'center',
},
});
const SomeStackNavigator = createStackNavigator({
ScreenA: Screen,
ScreenB: Screen,
});
const AppStack = createDrawerNavigator({
StackA: {
name: 'StackA',
screen: SomeStackNavigator,
},
StackB: {
name: 'StackB',
screen: SomeStackNavigator,
},
});
const AppNavigator = createSwitchNavigator(
{
App: AppStack,
Auth: {
screen: AuthScreen,
},
},
{
initialRouteName: 'Auth',
},
);
const AppContainer = createAppContainer(AppNavigator);
export default AppContainer;
在这里查看。
推荐阅读
- javascript - 有没有办法对所有子数组项求和,然后使用“for”或“for-of”循环将所有子数组相乘?
- azure - 在 Azure 上更改平面显示:HTTP 错误 502.5 - ANCM 进程外启动失败(Windows Server)
- windows - 希望创建使用 cookie/令牌来确定重启后应该自动登录的 Windows 帐户的实用程序
- git - 拉取请求合并后怎么办?
- polly - 替代旧 Polly 包中的“AsyncRetryPolicy”类型
- python - Tkinter窗口未在Windows 10中打开
- automated-tests - 您能否将结果(Given)保存到 Gherkin 特征文件中的变量中,然后将该变量与另一个结果(Then)进行比较?(Java 的黄瓜)
- python - 使用 PySide2 和 QTableView 如何使用 pandas 模型在表格视图中获得多个委托?
- docusignapi - DocuSign 向用户重新发送信封并进行主题更正
- parsing - 词法分析器和解析器的 ANTLR 令牌识别错误