Я пытаюсь перенести фокус на второе поле в форме, используя пользовательские компоненты ввода.Однако я не могу получить доступ к focus()
или другим методам TextInput
, которые я расширяю в пользовательском классе.Я видел некоторую информацию о пересылке ссылок, а также о реализации функции focus()
в классе, но пока не смог заставить ее работать.
Всякий раз, когда я пытаюсь нажать кнопку «Далее» на клавиатуре, он говорит, что фокусировка не является функцией.Буду признателен за любую помощь или ссылку.
<View>
<CustomInput
onRef={ref => (this.child = ref)}
autoCapitalize={'none'}
returnKeyType={'next'}
autoCorrect={false}
onSubmitEditing={() => this.lastNameInput.focus()}
updateState={(firstName) => this.setState({firstName})}
blurOnSubmit={false}
/>
<CustomInput
onRef={ref => (this.child = ref)}
autoCapitalize={'none'}
returnKeyType={'done'}
autoCorrect={false}
updateState={(lastName) => this.setState({lastName})}
ref={(input) => { this.lastNameInput = input; }}
onSubmitEditing={(lastName) => this.setState({lastName})}
/>
</View>
export default class UserInput extends Component {
render() {
return (
<View style={styles.inputWrapper}>
<TextInput
style={styles.input}
autoCorrect={this.props.autoCorrect}
autoCapitalize={this.props.autoCapitalize}
returnKeyType={this.props.returnKeyType}
placeholderTextColor="white"
underlineColorAndroid="transparent"
onChangeText={(value) => this.props.updateState(value)}
blurOnSubmit={this.props.blurOnSubmit}
/>
</View>
);
}
}