Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript “当”时如何重置反应导航;“卸载”;从帐单上?_Javascript_Reactjs_React Native_React Navigation - Fatal编程技术网

Javascript “当”时如何重置反应导航;“卸载”;从帐单上?

Javascript “当”时如何重置反应导航;“卸载”;从帐单上?,javascript,reactjs,react-native,react-navigation,Javascript,Reactjs,React Native,React Navigation,所以我有一个名为AuthStack的堆栈 const AuthStack = ({ resetPassword, updateEmail }: any) => ( <Stack.Navigator screenOptions={{ cardStyle: { backgroundColor: '#F2F1F7' }, headerShown: true, headerTitle: '',

所以我有一个名为
AuthStack
的堆栈

const AuthStack = ({ resetPassword, updateEmail }: any) => (
    <Stack.Navigator
        screenOptions={{
            cardStyle: { backgroundColor: '#F2F1F7' },
            headerShown: true,
            headerTitle: '',
        }}
    >
        {resetPassword ? (
            <Stack.Screen name="Reset Password">{(props: any) => <ResetPassword />}</Stack.Screen>
        ) : updateEmail ? (
            <Stack.Screen name="Update Email">{(props: any) => <UpdateEmail />}</Stack.Screen>
        ) : (
            <Stack.Screen name="Home">{(props: any) => <Home />}</Stack.Screen>
        )}
    </Stack.Navigator>
)
const AuthStack=({resetPassword,updateEmail}:any)=>(
{重置密码(
{(道具:任意)=>}
):更新邮件(
{(道具:任意)=>}
) : (
{(道具:任意)=>}
)}
)
如果知道这是正确的方法,那就好了。但基本上,我的账户页面上有重置密码和更新电子邮件的链接。我把这两个都放在AuthStack中,因为我不确定这是不是最好的地方。不管怎么说,这种方式是有效的,但是如果我点击“更新电子邮件”并被导航到那里,如果我决定实际上我想转到另一个页面并导航离开,如果我点击“主页”返回,它仍然会带我到更新电子邮件页面。尽管此时我真的很想显示主屏幕。此外,如果我在主页处于活动状态时单击主页,它也不会带我去那里。这意味着我再也看不到我的主页了

所以我想知道是否有某种类型的监听器,当我离开这个页面时,默认情况下它总是会显示我的主页


有什么想法吗?我不想显示重置密码/更新电子邮件,因为有自己的标签,因此将它们隐藏在主页下。有更好的方法吗?

我真的不知道为什么要有条件地渲染屏幕,我认为您使用的名称不好。您应该像navigation.navigate('ForgotPassowrd')(屏幕名称)一样导航。它不断显示你更新电子邮件,因为家不存在

export const AuthNavigator = () => {
    return (
        <Stack.Navigator headerMode='none'>
            <Stack.Screen name='Home' component={SignupContainer}></Stack.Screen>
            <Stack.Screen name='ForgotPassword' component={ForgotPasswordContainer}></Stack.Screen>
            <Stack.Screen name='Update Email' component={UpdateEmailContainer}></Stack.Screen>
        </Stack.Navigator>
    );
};
export const AuthNavigator=()=>{
返回(
);
};