gpt4 book ai didi

ionic-framework - 在验证 ionic react 时重定向/渲染不同的组件

转载 作者:行者123 更新时间:2023-12-05 06:16:29 33 4
gpt4 key购买 nike

我是 Ionic React 的新手,正在尝试使用 Ionic 框架创建应用程序。我有一个用例,我想在按下按钮并通过函数验证后重定向到另一个页面。

这是我正在使用的组件

import React, { useState } from 'react';
import {
IonContent,
IonHeader,
IonPage,
IonTitle,
IonToolbar,
IonInput,
IonButton,
IonRow,
IonCol,
useIonViewWillEnter,
useIonViewWillLeave,
IonLabel
} from '@ionic/react';

import './LogIn.css'
import MainMenu from "../MainMenu";

const LogIn: React.FC<{register?: boolean; onClose?: any}> = () => {

const [email, setEmail] = useState<string>();
const [password, setPassword] = useState<string>();

function handleLoginButtonPress() {
if (validateEmail() && password !== undefined && password.trim() !== "") {
// Network call here to check if a valid user
console.log("valid email")
return <MainMenu/>
}
}
function validateEmail () {
if (email !== undefined && email.trim() !== "") {
const regexp = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return regexp.test(email);
}
return false;
}

useIonViewWillEnter(() => {
console.log("Entering LogIn");
});

useIonViewWillLeave(() => {
console.log("Exiting LogIn");
});

return (
<IonPage id="loginIonPage">
<IonHeader>
<IonToolbar color="primary" mode="md">
<IonTitle class="ion-text-center">Login or Register</IonTitle>
</IonToolbar>
</IonHeader>

<IonContent id="loginPage">
<div id="loginDialog">
<form>
<IonLabel>Email</IonLabel>
<IonRow>
<IonCol id="userName">
<IonInput
name="email"
value={email}
onIonChange={e => setEmail(e.detail.value!)}
clearInput
type="email"
placeholder="Email"
class="input"
padding-horizontal
clear-input="true"
required/>
</IonCol>
</IonRow>
<IonLabel>Password</IonLabel>
<IonRow>
<IonCol id="password">
<IonInput
clearInput
name="password"
value={password}
onIonChange={e => setPassword(e.detail.value!)}
type="password"
placeholder="Password"
class="input"
padding-horizontal
clear-input="true"
required/>
</IonCol>
</IonRow>
</form>
</div>
<div id="buttons">
<IonButton
onClick={handleLoginButtonPress}
type="submit"
strong={true}
expand="full"
style={{ margin: 20 }}>
Log in
</IonButton>
<IonButton
routerLink="/registerUser"
type="submit"
strong={true}
expand="full"
style={{ margin: 20 }}>
Register
</IonButton>
</div>
</IonContent>
</IonPage>
);
};

export default LogIn;

如何从函数 handleLoginButtonPress 重定向到另一个页面,该函数在单击“登录”按钮时被调用。我试过 reading through ionic doc但这没有帮助,因为只要单击按钮或单击 IonLabel 等 IonElement,它就会重定向。

最佳答案

使用 react-router-dom 钩子(Hook) https://reacttraining.com/react-router/web/api/Hooks/usehistory

import { useHistory } from "react-router-dom";
const ExampleComponent: React.FC = () => {
const history = useHistory();

const handleLoginButtonPress = () => {
history.push("/main");
};

return <IonButton onClick={handleLoginButtonPress}>Log in</IonButton>;
};
export default ExampleComponent;

关于ionic-framework - 在验证 ionic react 时重定向/渲染不同的组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62097436/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com