Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can´t focus a custom textInput #20668

Closed
3 tasks
Fernando-Parise opened this issue Aug 14, 2018 · 3 comments
Closed
3 tasks

Can´t focus a custom textInput #20668

Fernando-Parise opened this issue Aug 14, 2018 · 3 comments
Labels
Component: TextInput Related to the TextInput component. Resolution: Locked This issue was locked by the bot.

Comments

@Fernando-Parise
Copy link

Environment

Environment:
OS: Windows 10
Node: 8.9.1
Yarn: Not Found
npm: 5.6.0
Watchman: Not Found
Xcode: N/A
Android Studio: Version 3.0.0.0 AI-171.4443003

Packages: (wanted => installed)
react: ^16.3.1 => 16.3.1
react-native: ^0.55.4 => 0.55.4

Description

Hello.
I have a question.
I have two textInput, and need to make pass from the first textinput to the second.
I created a customtextInput with the code below:

render() {
return (
<View style={[styles.outside, this.props.style]} >
<TextInput
placeholderTextColor="#dadada"
underlineColorAndroid="transparent"
{...this.props}
style={styles.txtInput}
/>

);

const styles = StyleSheet.create({
txtInput: {
color: 'white',
fontFamily: 'Poppins-Regular',
flex: 1,
fontSize: 15,
},
outside: {
paddingHorizontal: 18,
paddingTop: 4,
paddingBottom: Platform.select({ android: 1, ios: 4 }),
borderRadius: 30,
backgroundColor: '#4f4f4fa3',
flexDirection: 'row',
},
icon: {
marginTop: Platform.select({ android: 3, ios: 0 }),
},
});

this is the customtextinput code

    <CustomTextInput
      onChangeText={text => this.setState({user: text})}
      placeholder="Usuário"
      style={styles.components}
      returnKeyType="next"
      autoCapitalize="none"
      autoCorrect={false}
      onSubmitEditing={() => {
        (this.refs['inputPassword'] as any).focus();
      }}
    />
    <CusatomTextInput
      onChangeText={text => this.setState({password: text})}
      placeholder="Senha"
      style={styles.components}
      returnKeyType="done"
      secureTextEntry={true}
      ref="inputPassword"
    />

my problem is that it returns error when trying to make the setfocus

Thank you

Reproducible Demo

react-native run-android

@react-native-bot react-native-bot added Component: TextInput Related to the TextInput component. ⏪Old Version labels Aug 14, 2018
@react-native-bot
Copy link
Collaborator

Can you reproduce the issue on the latest release, v0.56?

@basbase
Copy link

basbase commented Aug 15, 2018

Add a method to your custom component that will return a reference to the TextInput.
Get a reference to your custom component and call the method on that reference.

getInnerRef = () => this.ref;

render() {
    return (
        <View>
            <TextInput
                {...this.props}
                ref={(r) => this.ref = r}
            />
        </View>
    )
}
render() {
    return (
        <View>
            <CustomTextInput
                onSubmitEditing={() => this.refInput.getInnerRef().focus()}
            />
            <CustomTextInput
                {...this.props}
                ref={(r) => this.refInput = r}
            />
        </View>
    )
}

@Fernando-Parise
Copy link
Author

It worked..... wohoooo
thank you for your help

@hramos hramos closed this as completed Aug 17, 2018
@facebook facebook locked as resolved and limited conversation to collaborators Aug 17, 2019
@react-native-bot react-native-bot added the Resolution: Locked This issue was locked by the bot. label Aug 17, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Component: TextInput Related to the TextInput component. Resolution: Locked This issue was locked by the bot.
Projects
None yet
Development

No branches or pull requests

4 participants