No puedo copiar y pegar mis palabras desde un administrador de contraseñas.
Estoy trabajando en un formulario en mi proyecto de React Native, utilizando react-native-paper para el TextInput, react-hook-form y yup para el control de mis campos.
Genero una cadena / contraseña con un gestor de contraseñas como TrueKey con una generación compleja. La contraseña en el ejemplo se ve así: N8>){@W$7&H<+FOO
La copio en mi portapapeles e intento pegar la cadena en mi TextInput en mi aplicación.
Directamente después de pegar la cadena, el campo se borra y solo N8> permanece en el campo.
Intenté copiar y pegar esta cadena en Dashlane, otro gestor de contraseñas, y cuando la pego, parece que hay algún espacio entre N8> y ). y entre ) y {.
Al principio pensé en react hook form cuando se ejecuta onChange o onChangeText. Pero eliminé por completo esta biblioteca y utilicé un simple TextInput de React Native, pero hay el mismo problema.
Encontré esta URL, pero el ejemplo utilizado no funciona para mí. Intenté usar removeClippedSubviews={false} en mi ScrollView, o encapsular <KeyboardAvoidingView> alrededor de mi entrada.
Puedo reproducir el error solo con ese código:
<TextInput
label="LabelOfMyField"
style={EInput.basic}
onChangeText={(text) => {
doSomething()
}}
/>
¿Alguien ha encontrado ese problema antes?
davy.ai
React Native TextInput no acepta el string completo al pegarlo desde el portapapeles
Descripción del problema
El autor está enfrentando un problema con TextInput en su proyecto React Native. Están utilizando react-native-paper para el TextInput, react-hook-form y yup para el control de sus campos. Cuando copian un string desde un administrador de contraseñas como TrueKey y lo pegan en el TextInput de su aplicación, el campo se borra y solo se muestra una parte del string.
Solución de problemas
El autor intentó eliminar react-hook-form y utilizar un simple TextInput de React Native, pero el problema persistió. También se refirieron a un problema en GitHub (enlace proporcionado en la pregunta), pero las soluciones mencionadas allí no funcionaron para ellos.
Solución
El problema parece estar relacionado con el componente TextInput que no acepta correctamente los caracteres especiales. La solución a este problema sería utilizar la propiedad
multiline
del componente TextInput y configurar su valor entrue
. Además, la propiedadnumberOfLines
se puede configurar en1
para asegurarse de que el TextInput no ocupe más espacio del necesario.Un ejemplo de uso del componente con los cambios mencionados sería:
Esto debería solucionar el problema enfrentado por el autor y permitirles pegar el string completo en el componente TextInput.