现在我有以下设置
App.js
const mainStack = createStackNavigator();
return (
<AuthProvider>
<NavigationContainer ref={navigationRef}>
<mainStack.Navigator>
{!isUserAvailable ? (
<mainStack.Screen name="Auth" component={AuthentificationStack}/>
) : (
<mainStack.Screen
name="Core"
component={CoreApplicationStack}
initialParams={{isBakerySetUp: hasBakery}}
/>
)}
</mainStack.Navigator>
</NavigationContainer>
</AuthProvider>
);
AuthentificationStack.js
const AuthStack = createStackNavigator();
return (
<AuthStack.Navigator>
<AuthStack.Screen name="Welcome" component={WelcomeScreen} />
<AuthStack.Screen
name="SignUp"
component={SignupScreen}
options={({navigation}) => {
return {
headerRight: () => <SignUpHeader navigation={navigation} />,
};
}}
/>
<AuthStack.Screen name="Login" component={LogInScreen} />
<AuthStack.Screen name="PhoneNumber" component={PhoneNumberScreen}/>
</AuthStack.Navigator>
);
我的问题是我无法从“Auth”=>“PhoneNumber”屏幕导航到“Core”导航器堆栈。我还尝试利用我为 App.js 的堆栈导航器创建的 navigationRef;但是,我无法导航到“核心”堆栈导航器。
我也更新了 isUserAvailable(来自 asyncStorage),但由于 App.js 没有呈现,切换到核心堆栈导航器的逻辑不适用。
有什么方法可以让我从“Auth”的嵌套屏幕导航到“Core”导航器吗?