我在开发react-native时遇到了以下错误。我读过一些与此错误相关的帖子,但导航结构与我的略有不同。我也知道这是在屏幕之间导航时发生的问题。但我读到的示例代码显然是具有不同导航父级的情况。但我编写的导航如下:
const RootStacks = () => {
return (
<Stack.Navigator>
{isInitializing? (
<Stack.Screen name='LoadingScreen' component={LoadingScreen} />
) : isLoggedIn ? (
<Stack.Screen name='AuthScreen' component={AuthScreen} />
) : isFirstSignup ? (
<Stack.Screen name='AgreementScreen' component={AgreementScreen} />
<Stack.Screen ...
) :
<Stack.Screen name='MainTabs' component={MainTabs} />
<Stack.Screen ...
)}
</Stack.Navigator>
}
const MainTabs = () => {
return (
<Tab.Navigator
screenOptions={{ headerShown: false }}
tabBar={(props) => <MainBottomTabBar {...props} />}
>
<Tab.Screen name='GroupScreen' component={GroupScreen} />
<Tab.Screen name='MatchTabs' component={MatchTabs} />
<Tab.Screen name='ChatScreen' component={ChatScreen} />
<Tab.Screen name='MyScreen' component={MyScreen} />
</Tab.Navigator>
)
}
我想从“AgreementScreen”导航到“MainTabs”。但在AgreementScreen上运行'navigation.navigate ('MainTabs');
时,出现与本文标题类似的错误。
- 任何导航器都未处理带有有效负载{“MainTabs”}的操作“navigate”*
在调查过程中,我发现我必须指定一个名为screen
的参数。然后代码应修改如下。navigation.navigate("SomeParentStack", { screen: 'MainTabs' })
但是我认为AgreementScreen和MainTabs有相同的父导航器,而且我不知道该放什么值来代替SomeParentStack
1条答案
按热度按时间q35jwt9p1#
您无法导航到
MainTabs
屏幕,因为它们未同时装载。请更新路由结构,以便AgreementScreen
和MainTabs
同时可用,或者通过将isFirstSignUp
的条件呈现值更新为false
来导航到MainTabs
。您可以在这里阅读更多关于导航结构的信息:https://reactnavigation.org/docs/auth-flow/