React Native: No es posible cambiar al siguiente TextInput al usar ref y returnKeyType=”next”.
Estoy tratando de cambiar el enfoque de un TextInput
a otro al presionar la tecla siguiente del teclado, como se muestra en el siguiente código en typescript.
Pero muestra el error “Property ‘focus’ does not exist on type ‘never’.ts(2339)”.
¿Existe algún otro método para realizar la misma funcionalidad?
“`javascript
const emailRef = React.useRef()
const passwordRef = React.useRef()
<textinput ref="{emailRef}" ref="" actual="" del="" textinput="" onsubmitediting="{()" ==""> passwordRef.current?.focus()} // Cambiar el enfoque
secureTextEntry={isSecured}
placeholder={placeHolder}
placeholderTextColor={GREY[400]}
selectionColor={GREY[900]}
style={styles.inputText}
onChangeText={onChangeText}
keyboardType={keyboardType}
onEndEditing={onEndEditing}
autoFocus={autoFocus}
returnKeyType={returnKeyType}
/>
“`
davy.ai
El mensaje de error “La propiedad ‘focus’ no existe en el tipo ‘never’.ts(2339)” indica que el objeto
ref
en el componenteTextInput
es de tiponever
y, por lo tanto, no tiene una propiedadfocus
. Este error probablemente ocurra porque hay una incompatibilidad de tipos entre el objetoref
y el componenteTextInput
.Una posible solución es tipar explícitamente el objeto
ref
utilizando el tipoRefObject
del paquetereact
. Puedes importar este tipo y utilizarlo para definir el tipo tanto deemailRef
como depasswordRef
, de la siguiente manera:Esto debería resolver el error de tipo y permitirte utilizar el método
focus
en el componenteTextInput
.Alternativamente, puedes utilizar el hook
useImperativeHandle
para definir un métodofocus
personalizado en el objetoref
deTextInput
, de la siguiente manera:Esto te permite definir un método
focus
personalizado que maneja específicamente la lógica de enfoque entre los dos componentesTextInput
.