Основная цель: у меня есть два TextInput, и я хочу имитировать обратный щелчок по первому textInput, чтобы установить фокус на следующий textInput.
Начнем с настройки (используя typescript)
У меня есть тематический TextInput с некоторыми настройками цвета, как показано ниже. Я настраиваю/использую forwardRef для передачи ссылки, если она предоставлена. Из того, что я мог прочитать, это кажется правильным путем. но, может быть, это неправильно.
export type TextInputProps = ThemeProps & RNTextInput['props'];
export const TextInput = React.forwardRef<RNTextInput, TextInputProps>((props, ref) => {
...
return <RNTextInput style={[{ backgroundColor, color }, style]} {...otherProps} ref={ref} />;
}
Теперь на моем экране я использую этот объект, и после завершения ввода первого ввода я хотел установить фокус на этом. Код выглядит так..
const inputSecound = React.useRef<typeof TextInput>();
const handleFirstTextComplete = () => {
inputSecound.current.focus() // This does not work
}
...
<TextInput onSubmitEditing={handleFirstTextComplete} ...>
<TextInput ... ref={inputSecound}> //This also complains
Любая идея, как добиться этого правильно в функциональных компонентах + пользовательских компонентах + машинописном тексте.
Образец закуски доступен здесь, если вы хотите увидеть полную настройку в действии. https://snack.expo.io/@varesh.tapadia/useref-and-useforwardref