es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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?

Tags:  , , , ,

Answer

  1. Avatar for 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 en true. Además, la propiedad numberOfLines se puede configurar en 1 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:

    <textinput label="LabelOfMyField" style="{EInput.basic}" multiline="{true}" numberoflines="{1}" onchangetext="{(text)" ==""> {
            doSomething()
        }}
    />
    

    Esto debería solucionar el problema enfrentado por el autor y permitirles pegar el string completo en el componente TextInput.

Comments are closed.