【发布时间】:2020-09-09 15:32:08
【问题描述】:
我有一个 Ionic React 应用程序,其中history.replace 用于在用户单击注销按钮时将用户从设置页面重定向到登录屏幕。我希望能够在重定向中传递 loggedOut 标志。然后在登录页面上,我可以检查是否设置了loggedOut 标志并显示“您已注销”消息。
这是带有注销按钮的设置页面代码
import React from 'react';
import { useHistory } from "react-router";
interface PageProps {
pageName: string | undefined;
}
const SettingsTab: React.FC<PageProps> = ({ pageName }) => {
console.log("render TabPage " + pageName);
const history = useHistory();
return (
<IonPage>
<IonHeader>
<IonToolbar>
<IonButtons slot="start">
<IonMenuButton />
</IonButtons>
<IonTitle>{pageName}</IonTitle>
</IonToolbar>
</IonHeader>
<IonContent>
<IonButton
onClick={async () => {
await logOut();
history.replace("/login");
//history.replace("/login", {loggedOut : "yes"});
}}
>
LOGOUT
</IonButton>
</IonContent>
</IonPage>
);
};
登录页面:
import React from "react";
import { RouteComponentProps } from "react-router";
const Login: React.FC<RouteComponentProps> = ({ history }) => {
// Check if loggedOut is set so we can display "You are logged out" message
return (
<IonPage>
<IonHeader>
<IonToolbar>
<IonButtons slot="start">
<IonMenuButton />
</IonButtons>
<IonTitle>Login Page {""}</IonTitle>
</IonToolbar>
</IonHeader>
<IonContent>
<IonButton
onClick={async () => {
await logIn();
history.replace("/dashboard");
}}
>
LOGIN
</IonButton>
</IonContent>
</IonPage>
);
};
我仍然是 React 的新用户,因此我感谢任何有关此问题的帮助或建议。
【问题讨论】:
-
如果这个或任何答案已经解决了您的问题,请点击复选标记考虑accepting it。这向更广泛的社区表明您已经找到了解决方案,并为回答者和您自己提供了一些声誉。没有义务这样做。
标签: javascript reactjs ionic-framework react-router