[英]Trouble with stack navigator and tab navigator for react native
我试图从选项卡导航器导航到堆栈导航器上的屏幕,但出现此错误:
在标签导航器中后,是否有特定的方法可以导航回堆栈导航器?
这是我使用onPress的地方:
onPress={() => this.onProfileButtonPressed()}
onProfileButtonPressed的函数如下所示:
constructor(props){
super(props);
this.state = {
filteredCellArray: [],
masterCellArray: []
};
this.onProfileButtonPressed = this.onProfileButtonPressed.bind(this);
}
onProfileButtonPressed = () => {
this.props.navigation.navigate('Profile', this);
console.log("Profile Button Pressed");
};
以下是带有堆栈和标签导航器的路由器:
const TabNav = TabNavigator({
Profile:{
screen: Profile,
tabBarOptions: {
showLabel: false
}
},
Books:{
screen: BookTab
},
Tutors:{
screen: TutorTab
},
Furniture:{
screen: FurnitureTab
},
Roommate:{
screen: RoommateTab
},
Carpool:{
screen: CarpoolTab
}},
{
tabBarComponent: TabBarBottom,
tabBarPosition: 'bottom',
swipeEnabled: false,
animationEnabled: false,
lazy: true,
initialRouteName: 'Books'
});
export const FeedStack = StackNavigator({
SignIn: {
screen: SignIn,
navigationOptions: {
title: "Login"
}
},
SignUp: {
screen: SignUp,
navigationOptions: {
title: "Create An Account"
}
},
ForgotPassword: {
screen: ForgotPassword,
navigationOptions: {
title: "Forgot Password"
}
},
Profile: {
screen: Profile,
navigationOptions: {
title: "Your Profile"
}
},
TabNav: {
screen: TabNav,
navigationOptions: {
title: "Home"
}
},
listing: {
screen: listing,
navigationOptions: {
title: "Listing"
}
}
})
我认为您的问题是,当前您的TabNavigator
在StackNavigator
。 应该是其他方式了。
另外,由于您不想在所有视图中显示它(我想像在注册中一样),因此需要自定义它。 阅读有关隐藏TabBar的文档的更多规范。
但是带有制表符的基本逻辑是堆栈位于其中。
而且,如果将函数绑定到constructor
函数内部的作用域,则应像下面这样引用它: onPress={this.onProfileButtonPressed}
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.