nativebase input输入框type设置为password时,在ios输入卡顿,android没有问题。
(react-native的textinput secureTextEntry属性设置为true时同样的问题)
步骤1:聚焦输入框,输入“123”,失去焦点
步骤2:再聚焦到输入框,再输入4,会把“123”顶掉只剩4,或者顶掉“3”剩“124”
const [pwd, setPwd] = useState({ oldPwd: '', newPwd: '', newPwd2: '', showOldPwd: false, showNewPwd: false, }); <TextInput value={pwd.oldPwd} secureTextEntry={true} onChangeText={text => { setPwd({...pwd, oldPwd: text}), console.log(pwd); }} /> <Input placeholder={t('旧密码')} value={pwd.oldPwd} type={pwd.showPwd ? 'text' : 'password'} onChangeText={text => { setPwd({...pwd, oldPwd: text}), console.log(pwd); }} />
这个问题可能是由于 React Native 或 NativeBase 的输入法处理机制与 iOS 的原生输入法处理机制之间的冲突导致的。
一个可能的解决方案是使用第三方库,如 react-native-keyboard-aware-text-input
。这个库可以帮助你更好地控制输入法,可能可以解决你的问题。
另一种可能的解决方案是自定义一个 TextInput 组件,并使用 onChangeText
回调来更新密码值。这样,你可以更好地控制输入框的值,避免出现卡顿问题。
如果你正在使用 React Native 0.60 或更高版本,你可以尝试使用 useEffect
钩子来更新密码值。例如:
import React, { useState, useEffect } from 'react';import { TextInput } from 'react-native';const PasswordInput = ({ secureTextEntry }) => { const [value, setValue] = useState(''); useEffect(() => { const interval = setInterval(() => { if (value.includes('*')) { setValue(value.replace(/[*]/g, '')); } else { setValue(value + '*'); } }, 1000); return () => clearInterval(interval); }, [value]); return ( <TextInput value={value} secureTextEntry={secureTextEntry} onChangeText={text => setValue(text)} /> );};
这个组件会在输入框中每秒钟插入一个星号,从而模拟密码输入的视觉效果。你可以在 NativeBase 的 Input 组件中使用这个组件,例如:
<Input placeholder="旧密码" secureTextEntry={true} />
介绍 带网格的输入框组件,可以用于输入密码、短信验证码等场景,通常与数字键盘组件配合使用。 引入 import { createApp } from 'vue'; import { PasswordInput, NumberKeyboard } from 'vant'; const app = createApp(); app.use(PasswordInput); app.use(Number
import { Pwdinput } from 'feui'; components: { [Pwdinput.name]: Pwdinput }, data() { return { value: '', showKeyboard: true } } 代码演示 基础用法 <fe-pwdinput :value="value" info="密码为
使用指南 组件介绍 带网格的输入框组件,可以用于输入密码、支付密码等,可与数字键盘组件配合使用 引入方式 import { PasswordInput } from 'feart'; components: { "fe-password-input": PasswordInput, }, 代码演示 基本用法 <fe-password-input @change="onChange"
我已经在Android中生成了以下公钥。 我选择的RSA密钥大小是4096字节,指数是3字节,模数是512字节 模数字节数组如下所示: [-32, -28, -121, 32, 109, -82, 43, 115, 43, -117, 20, 35, 122, 33, -2, 23, 23, -22, 75, 0, 91, 10, -89, 48, 33, -89, 57, 1, 57, -13,
请输入主密码来加密保存在注册表里的密码记录,并保护它们免遭未经授权的访问。此后,您会需要在密码提示框里输入主密码来访问这些密码。一旦输入完毕,主密码在关闭 WinRAR 之前始终有效。如果您希望看到它是如何保护的,请在指定主密码后关闭 WinRAR 并重新打开它。输入空密码来从先前保护的密码记录里删除加密。 仅当您在上级“管理密码”对话框里按下“确认”后,实际的加密才执行,而不是在您关闭此主密码提
在此对话框,您可以输入默认的密码,这可应用在添加、解压、测试和查看选项时。 如果“显示密码”选项被禁用并且压缩文档操作时需要密码,您将会被要求输入密码两次来进行正确性的确认。 如果您设置了“加密文件名选项”,WinRAR 不只加密数据,而且加密所有包括文件数据、文件名、大小、属性、注释和其它块等所有可感知的压缩文件区域,所以它提供了更高的安全等级。在压缩文件中使用这个命令加密,没有密码甚至不可能查