Gou*_*ahi 7 logout navigation-drawer react-native react-navigation
我正在构建一个react-native应用程序(App Image),它在Drawer Navigator上有Logout链接.
代码如下
const DrawerScreen = DrawerNavigator({
..........
logout: {
screen: Component
},
})
export default DrawerScreen;
Run Code Online (Sandbox Code Playgroud)
但问题是,它只加载组件屏幕.我需要调用一个方法,我可以执行Asyncstorage清除并导航到LoginPage.
Bri*_*Lee 19
您可能想要在抽屉中添加一个按钮.如果是这样,您的代码将如下所示.
const Drawer = DrawerNavigator(
{
mainpage:{screen:MyScreen}
},
{
contentComponent:(props) => (
<View style={{flex:1}}>
<SafeAreaView forceInset={{ top: 'always', horizontal: 'never' }}>
<DrawerItems {...props} />
<Button title="Logout" onPress={DO_SOMETHING_HERE}/>
</SafeAreaView>
</View>
),
drawerOpenRoute: 'DrawerOpen',
drawerCloseRoute: 'DrawerClose',
drawerToggleRoute: 'DrawerToggle'
})
Run Code Online (Sandbox Code Playgroud)
您应该导入import {DrawerItems} from 'react-navigation';
以使其工作.
小智 9
const DrawerNavigation = createDrawerNavigator(
{
Mainpage: {
screen: Mainpage
}
},
{
contentComponent:(props) => (
<View style={{flex:1}}>
<SafeAreaView forceInset={{ top: 'always', horizontal: 'never' }}>
<DrawerItems {...props} />
<TouchableOpacity onPress={()=>
Alert.alert(
'Log out',
'Do you want to logout?',
[
{text: 'Cancel', onPress: () => {return null}},
{text: 'Confirm', onPress: () => {
AsyncStorage.clear();
props.navigation.navigate('Login')
}},
],
{ cancelable: false }
)
}>
<Text style={{margin: 16,fontWeight: 'bold',color: colors.textColor}}>Logout</Text>
</TouchableOpacity>
</SafeAreaView>
</View>
),
drawerOpenRoute: 'DrawerOpen',
drawerCloseRoute: 'DrawerClose',
drawerToggleRoute: 'DrawerToggle'
}
);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10858 次 |
最近记录: |