React native 反应自然。如果用户未通过身份验证,则导航至登录/注册屏幕
我正在设计一个选项卡式应用程序。当应用程序启动时,它会检查用户是否经过身份验证,如果用户通过身份验证,则会呈现应用程序主选项卡,但如果用户未登录,则应呈现屏幕。登录不是一个选项卡,而是一个单独的屏幕。它有一个“注册”按钮,必须打开注册屏幕。当在注册屏幕上按下“后退”按钮时,注册屏幕打开 在我看来,我必须将StackNavigator与TabNavigator组合起来,但我不知道如何做到这一点React native 反应自然。如果用户未通过身份验证,则导航至登录/注册屏幕,react-native,navigation,React Native,Navigation,我正在设计一个选项卡式应用程序。当应用程序启动时,它会检查用户是否经过身份验证,如果用户通过身份验证,则会呈现应用程序主选项卡,但如果用户未登录,则应呈现屏幕。登录不是一个选项卡,而是一个单独的屏幕。它有一个“注册”按钮,必须打开注册屏幕。当在注册屏幕上按下“后退”按钮时,注册屏幕打开 在我看来,我必须将StackNavigator与TabNavigator组合起来,但我不知道如何做到这一点 import React, { Component } from 'react'; import { A
import React, { Component } from 'react';
import { AppRegistry, View, Text } from 'react-native';
import { TabNavigator } from 'react-navigation';
class SignIn extends Component {
render() {
return(
<View>
<Text>SignIn screen</Text>
</View>
);
};
}
class SignUp extends Component {
render() {
return(
<View>
<Text>SignUp screen</Text>
</View>
);
};
}
class TabOne extends Component {
static navigationOptions = {
title: "TabOne"
};
render() {
return(
<View>
<Text>This is tab One</Text>
</View>
);
};
}
class TabTwo extends Component {
static navigationOptions = {
title: "TabTwo"
};
render() {
return(
<View>
<Text>This is tab Two</Text>
</View>
);
};
}
const TabApp = TabNavigator({
First: { screen: TabOne },
Second: { screen: TabTwo }
});
AppRegistry.registerComponent('TabApp', () => TabApp);
import React,{Component}来自'React';
从“react native”导入{AppRegistry,View,Text};
从“反应导航”导入{TabNavigator};
类签名扩展组件{
render(){
返回(
登录屏幕
);
};
}
类注册扩展了组件{
render(){
返回(
注册屏幕
);
};
}
类TabOne扩展组件{
静态导航选项={
标题:“塔伯恩”
};
render(){
返回(
这是第一页
);
};
}
类TabTwo扩展组件{
静态导航选项={
标题:“Tab2”
};
render(){
返回(
这是表二
);
};
}
const TabApp=TabNavigator({
第一:{screen:TabOne},
第二:{screen:TabTwo}
});
AppRegistry.registerComponent('TabApp',()=>TabApp);
使用ex navigation,我是这样做的:
class App extends React.Component {
render() {
if (!isLoggedIn) {
return (
<NavigationProvider router={Router}>
<StackNavigation
initialRoute={Router.getRoute('sign')}
/>
</NavigationProvider>);
}
return (
<NavigationProvider router={Router}>
<StatusBar barStyle="light-content" />
<TabScreen />
</NavigationProvider>
);
}
}
AppRegistry.registerComponent('Your-App-Name', () => App);
我的TabScreen是带有选项卡的主屏幕。就这样
render() {
return (
<TabNavigation
id="main"
navigatorUID="main"
initialTab="home"
>
<TabItem
id="home"
title="Home"
renderTitle={this.renderTitle}
renderIcon={this.renderIcon}
>
<StackNavigation
id="home"
navigatorUID="home"
initialRoute={Router.getRoute('home')}
/>
</TabItem>
<TabItem
id="info"
title="Info"
renderTitle={this.renderTitle}
renderIcon={this.renderIcon}
>
<StackNavigation
id="info"
initialRoute={Router.getRoute('info')}
/>
</TabItem>
<TabItem
id="profile"
title="Profile"
renderTitle={this.renderTitle}
renderIcon={this.renderIcon}
>
<StackNavigation
id="profile"
initialRoute={Router.getRoute('profile')}
/>
</TabItem>
</TabNavigation>
);
}
render(){
返回(
);
}
使用ex navigation,我是这样做的:
class App extends React.Component {
render() {
if (!isLoggedIn) {
return (
<NavigationProvider router={Router}>
<StackNavigation
initialRoute={Router.getRoute('sign')}
/>
</NavigationProvider>);
}
return (
<NavigationProvider router={Router}>
<StatusBar barStyle="light-content" />
<TabScreen />
</NavigationProvider>
);
}
}
AppRegistry.registerComponent('Your-App-Name', () => App);
我的TabScreen是带有选项卡的主屏幕。就这样
render() {
return (
<TabNavigation
id="main"
navigatorUID="main"
initialTab="home"
>
<TabItem
id="home"
title="Home"
renderTitle={this.renderTitle}
renderIcon={this.renderIcon}
>
<StackNavigation
id="home"
navigatorUID="home"
initialRoute={Router.getRoute('home')}
/>
</TabItem>
<TabItem
id="info"
title="Info"
renderTitle={this.renderTitle}
renderIcon={this.renderIcon}
>
<StackNavigation
id="info"
initialRoute={Router.getRoute('info')}
/>
</TabItem>
<TabItem
id="profile"
title="Profile"
renderTitle={this.renderTitle}
renderIcon={this.renderIcon}
>
<StackNavigation
id="profile"
initialRoute={Router.getRoute('profile')}
/>
</TabItem>
</TabNavigation>
);
}
render(){
返回(
);
}
您需要在导航堆栈中再添加一个级别
例如:
const MyTabsNavigator = TabNavigator({
First: { screen: TabOne },
Second: { screen: TabTwo }
});
const AppNavigator = StackNavigator({
MyTabs: {
screen: MyTabsNavigator,
},
SignIn: {
screen: SignIn,
},
});
您需要在导航堆栈中再添加一个级别 例如:
const MyTabsNavigator = TabNavigator({
First: { screen: TabOne },
Second: { screen: TabTwo }
});
const AppNavigator = StackNavigator({
MyTabs: {
screen: MyTabsNavigator,
},
SignIn: {
screen: SignIn,
},
});
谢谢你的回答。实际上,我知道如何使用
ex-navigation
。我只想用最新的库实现这一点,因为不再开发ex-navigation
。谢谢您的回答。实际上,我知道如何使用ex-navigation
。我只想用最新的库实现这一点,因为不再开发ex-navigation
。