【发布时间】:2021-01-06 21:44:11
【问题描述】:
我一直在开发 React Native 应用程序。该应用程序包含入职和其他屏幕。如果用户第一次打开应用程序,我想显示入职屏幕,如果不是这种情况,则必须通过登录屏幕欢迎用户
const LoadNavigation = () => {
const { isFirst } = useIsFirstLaunch();
return isFirst === null ? (
<AppLoading />
) : (
<AppStack.Navigator headerMode="none">
{isFirst ? (
<AppStack.Screen name="Onboarding" component={Onboarding} />
) : (
<AppStack.Screen
name="Authentication"
component={AuthenticationNavigator}
/>
)}
</AppStack.Navigator>
);
};
export default LoadNavigation;
export const AuthenticationNavigator = () => {
return (
<AuthenticationStack.Navigator headerMode="none">
<AuthenticationStack.Screen name="Login" component={Login} />
</AuthenticationStack.Navigator>
);
};
这可行,但是当我尝试从入职屏幕导航到登录屏幕时,它给了我一个错误。
navigation.navigate("Authentication",{screen:"Login"})
如果用户第一次打开应用程序,当我按下 android 上的后退按钮(它必须退出应用程序)时,我不想从登录屏幕返回到启动屏幕
这样的错误
“带有有效负载 {"name":"Authentication","params":{"screen":"Login"}} 的操作 'NAVIGATE' 未被任何导航器处理。"
编辑: 我也在 isFirst 条件中添加了 AuthenticationNavigator。但是这次如果“isFirst”是真还是假,它也会向我显示登录页面
return (
<AppStack.Navigator headerMode="none">
{isFirst ? (
<>
<AppStack.Screen name="Onboarding" component={Onboarding} />
<AppStack.Screen
name="Authentication"
component={AuthenticationNavigator}
/>
</>
) : (
<>
<AppStack.Screen
name="Authentication"
component={AuthenticationNavigator}
/>
</>
)}
</AppStack.Navigator>
);
};
【问题讨论】:
标签: react-native react-navigation