我有一个自定义导航器,因为我想使用向后滑动手势返回上一个屏幕。下面是调用导航器的主文件的代码。
const MainSwipeStack = () => {
return(
<Navigator>
<Route name="LoggedOutHome" component={LoggedOutHome} />
<Route name="SignUp" component={SignUp} />
<Route name="SignupUsername" component={SignupUsername} />
<Route name="Login" component={Login} />
</Navigator>
);
}
export default createSwitchNavigator({
SwipeStack: {screen: MainSwipeStack},
TabHolder: {screen: TabHolder}
}, {
initialRouteName: 'SwipeStack',
headerMode: 'none',
});
下面是Navigator.js
代码的链接。 (我没有在这里添加代码,因为这是一个很长的代码。)
https://gist.github.com/shubham6996/a4197d2d0b664d4aabe01091cac6c91e
然后TabHolder
带我到有createBottomTabNavigator
的屏幕。
因此,现在我无法从Login
屏幕导航到TabHolder
堆栈。
如何从自定义导航器中的Login
导航到TabHolder
堆栈?
答案 0 :(得分:1)
似乎没有导航道具,
尝试
export default withNavigation(Login);
在登录时可以导入
import {withNavigation} from 'react-navigation'
未在导航器中直接使用的组件默认情况下没有导航道具。
所以您需要像这样通过普通道具传递它,
<Login navigation={this.props.navigation}
但是在堆栈中,我们没有导航道具,所以我们不能像这样通过(如果有道具的话,则为idk...。)
因此替代选项是withNavigation
和withNaviagtionFocus
,如上所示
找到有关withNavigation
的详细信息