我正在React-Native中开发一个应用程序。我如何尝试实现这一点是通过使用SignUpCompleted标志并检查其true/false来决定页面是否应导航到下一个注册屏幕或仅导航到主页。我有3个屏幕作为注册过程的一部分,我只希望在应用程序第一次打开时显示。我在StackNavigator中有3个屏幕,我“我试图从最后一个StackNavigator屏幕导航到BottomTabNavigator屏幕。不幸的是,我得到了以下错误:
任何导航器均未处理负载为{“name”:“HomeStack”}的操作“NAVIGATE”。
我当前的设置如下:
注册堆栈
const SignUpStack = createStackNavigator();
export default function SignUpStackScreen() {
const [signUpCompleted, setSignUpCompleted] = useState(false);
return (
<SignUpStack.Navigator initialRouteName="Welcome" screenOptions={{ headerShown: false }}>
<SignUpStack.Screen name="Welcome" component={WelcomeScreen} initialParams={{signUpCompleted}} />
<SignUpStack.Screen name="Department" component={ChooseDepartment} initialParams={{signUpCompleted}} />
<SignUpStack.Screen name="InputName" component={InputName} initialParams={{signUpCompleted, setSignUpCompleted}}/>
</SignUpStack.Navigator>
);
}
我尝试从InputName组件重定向到名为homename的BottomTabNavigator屏幕
重定向代码如下:-在InputName组件中
<TouchableOpacity
style={[styles.shadow]}
onPress={() => {navigation.navigate("HomeName"); setSignUpCompleted(true)}}
>
BottomTabNavigator如下所示:-我正在尝试重定向到HomeStack组件
-const Tab = createBottomTabNavigator();
export default function Tabs() {
return (
<Tab.Navigator initialRouteName={homeName} >
<Tab.Screen name={ResultsName} component={ResultatenStack} />
<Tab.Screen name={homeName} component={HomeStack} />
<Tab.Screen name={settingsName} component={SignUpStack} />
</Tab.Navigator>
);
}
当使用相同的导航方法指向堆栈中的屏幕时,我已经在使用了,它工作得很好。我希望有人能给予我任何指针或帮助!如果你需要任何更多的信息,请随时联系!
附言:我是一个非常新的React,所以我道歉,如果我错过了信息。
1条答案
按热度按时间nwnhqdif1#
我猜你正在尝试从堆栈导航器导航到标签导航器,这在react native中并不理想,你必须使用嵌套导航器
我的意思是你必须使用标签导航器作为堆栈导航器中的屏幕
这是嵌套导航器https://reactnavigation.org/docs/nesting-navigators/的React导航文档