as

Settings
Sign out
Notifications
Alexa
亚马逊应用商店
Ring
AWS
文档
Support
Contact Us
My Cases
新手入门
设计和开发
应用发布
参考
支持

处理Vega密码字段中的onSubmitEditing事件

处理Vega密码字段中的onSubmitEditing事件

在本文中,您将向密码TextInput组件添加提交操作筛选以防止意外行为。onSubmitEditing() 回调会触发多个键盘操作,包括显示和隐藏密码切换。如果不检查哪个操作触发了回调,则当用户仅切换密码可见性时,您的业务逻辑(例如连接到网络)可能会执行。

先决条件

确定您的应用是否受到影响

如果满足以下两个条件,则您的应用需要此修复:

  • 您使用TextInput组件,将keyboardType设置为password,并在键盘用户界面中显示/隐藏密码按钮。
  • 您在不检查e.nativeEvent.submitAction的值的情况下处理onSubmitEditing()

例如,以下代码触发任何提交操作的密码处理程序,包括显示和隐藏密码切换。

已复制到剪贴板。


<TextInput
        placeholder='密码的占位符文本'
        keyboardType='password'
        returnKeyType='done'
        onSubmitEditing={(e) => {
            console.log("密码 - " + e.nativeEvent.text);
        }}
/>

添加submitAction检查

在运行业务逻辑之前,通过检查e.nativeEvent.submitAction来筛选 onSubmitEditing() 回调。这样可以确保只有预期的操作(例如“完成”)才能触发您的代码。

已复制到剪贴板。


<TextInput
        placeholder='密码的占位符文本'
        keyboardType='password'
        returnKeyType='done'
        onSubmitEditing={(e) => {
            if(e.nativeEvent.submitAction === 'done') {
                console.log("密码 - " + e.nativeEvent.text);
            }
        }}
/>

处理其他submitAction值

除了“完成”,您可能还想回复其他提交操作。submitAction值对应于returnKeyType值加上使用auxOptions设置的自定义值。以下示例说明如何在完成操作的同时处理密码可见性切换。

已复制到剪贴板。


<TextInput
        placeholder='密码的占位符文本'
        keyboardType='password'
        returnKeyType='done'
        onSubmitEditing={(e) => {
            if(e.nativeEvent.submitAction === 'done') {
                console.log("密码 - " + e.nativeEvent.text);
            } else if (e.nativeEvent.submitAction === 'show_password') {
                console.log("密码现在可见");
            } else if(e.nativeEvent.submitAction === 'hide_password') {
                console.log("密码现已隐藏");
            }
        }}
/>

其他可能的submitAction值包括“go”、“search”、“next” “previous”。


Last updated: 2026年4月15日