Mak*_*aki 8 react-native stack-navigator
我想从DrawerNav导航回登录.在函数内使用alert('Alert')就可以了.
我有一个带Login和DrawerNav的StackNavigator
const MyStackNavigator = StackNavigator({
Login : { screen : Login },
DrawerNav : { screen : DrawerNav }
}, {
navigationOptions : { header : false }
}
);
Run Code Online (Sandbox Code Playgroud)
从登录我可以导航到我的主屏幕DrawerNav使用
_login = () => {
this.props.navigation.navigate('DrawerNav');
}
Run Code Online (Sandbox Code Playgroud)
DrawerNav里面是DrawerNavigator(显然)
const MyDrawerNavigator = DrawerNavigator({
... screens ...
}, {
initialRouteName : '',
contentComponent : CustomContent,
drawerOpenRoute : 'DrawerOpen',
drawerCloseRoute : 'DrawerClose',
drawerToggleRoute : 'DrawerToggle'
}
);
const CustomContent = (props) => (
<View>
<DrawerItems {...props} />
<TouchableOpacity
onPress={ this._logout }>
<Text style={ styles.logout }>Logout</Text>
</TouchableOpacity>
</View>
)
Run Code Online (Sandbox Code Playgroud)
如您所见,注销不是菜单的一部分,而是在抽屉内
_logout = () => {
this.props.navigation.navigate('Login');
}
Run Code Online (Sandbox Code Playgroud)
这给了我一个错误
undefined is not an object (evaluating '_this.props.navigation')
Run Code Online (Sandbox Code Playgroud)
in旨在引用实例,但由于它this是一个功能组件(没有实例),因此任何引用都不应该有效,但不会因bug而引发错误。this._logoutCustomContentCustomContentthis
改变
onPress={this._logout}
Run Code Online (Sandbox Code Playgroud)
到
onPress={() => props.navigation.navigate('Login')}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1131 次 |
| 最近记录: |