カスタム入力コンポーネントを使用して、フォームの 2 番目のフィールドにフォーカスを移動しようとしています。ただし、カスタム クラスで拡張している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>
);
}
}