reactjs - Ionic/React - 浏览器自动填充输入项时如何从输入项中获取值?
问题描述
我正在制作一个 Ionic React 应用程序并使用 Firebase 对我的用户进行身份验证。我面临的一个问题是,在登录/注册页面上,如果自动填充用户的用户名(电子邮件)或密码,则不会触发输入项的 onChange 事件,并且用户的信息不会保存到我的组件状态. 有没有更好的方法可以让我在不完全hacky的情况下做到这一点?
const LoginPage: React.FC = () => {
const [username, setUsername] = useState("");
const [password, setPassword] = useState("");
async function login() {
const res = await loginUser(username, password);
if(!res) {
toast('There was an error logging in.')
}else {
toast('You are logged in!');
}
}
...
<IonItem>
<IonLabel position="stacked">
Email <IonText color="danger">*</IonText>
</IonLabel>
<IonInput
required
type="email"
onIonChange={(e: any) => setUsername(e.target.value)}
></IonInput>
</IonItem>
<IonItem>
<IonLabel position="stacked">
Password <IonText color="danger">*</IonText>
</IonLabel>
<IonInput
required
type="password"
value={password}
onIonChange={(e: any) => setPassword(e.target.value)}
></IonInput>
</IonItem>
</IonList>
<div className="ion-padding">
<IonButton
expand="block"
onClick={login}
class="ion-no-margin"
>
Login
</IonButton>
</div>
</IonContent>
</IonPage>
解决方案
你找到解决问题的方法了吗?
我遇到了同样的问题,并通过使用onIonInput事件来解决它。
onIonInput={(e: any) => setPassword(e.target.value)}
推荐阅读
- python - 控制 Django 继承模型中的对象创建流程
- python - 使用 MatPlotLib 绘制单独的散点图
- python - 如何在 Sonarqube 中导入自定义模块?模块 YYY 中没有名称 XXX
- javascript - 如何在 d3 js 中对齐堆栈图中的条形图?
- python - Python:将编码为字节字符串(来自 PyTorch)的浮点数转换为 int
- python - 在字典列表中,根据键合并列表
- c - 如何按数组对c中的名称进行排序
- ruby - splat 运算符在应用于范围表达式时如何理解?
- google-cloud-platform - Cloud Tasks 条件执行
- maven - 如何允许结果
在 Kotlin 中作为返回类型?