我有一个自定义导航器,因为我想使用背面滑动手势回到上一个屏幕。以下是主文件的代码。
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/a4197d2d20b664d4aabe01091cac6c91e
,TabHolder
将我带到具有createBottomTabNavigator
的屏幕。
所以,现在我无法从Login
屏幕导航到TabHolder
堆栈。
如何从自定义导航器中的Login
导航到TabHolder
堆栈?
似乎没有导航道具,
尝试这个
export default withNavigation(Login);
在登录中,是的,也要导入
import {withNavigation} from 'react-navigation'
导航器中未直接使用的组件默认没有导航道具。
因此,您需要像这样的正常道具将其传递,
<Login navigation={this.props.navigation}
但是,在堆栈中,我们没有导航道具,因此我们不能这样通过(如果我们在那里有道具,则IDK ....)
因此,替代选项是withNavigation
和withNaviagtionFocus
,如上所示
查找有关withnavigation的详细信息