Как сосредоточиться на вводе текста по нажатию кнопки в react native

#typescript #react-native #react-hooks #react-native-android #react-native-ios

Вопрос:

Я пытаюсь сфокусироваться на TextInput том, когда я нажимаю кнопку редактирования, но я получаю ошибку.

Ниже приведен мой код:

 const MyProfileScreen = (props: any) => {
    const refsFocus = useRef(null);
    return (
        <>
            <View>
                <TextInput
                    placeholder={'editable test'}
                    placeholderTextColor={'red'}
                    style={{color: 'red'}}
                    ref={refsFocus}
                />
            </View>
            <TouchableOpacity
                onPress={()=> { refsFocus.current.focus();} }
                >
                <Text>Edit text input</Text>
            </TouchableOpacity>
        </>
    );
};
 

Но я получаю ошибку на onPress={()=> { refsFocus.current.focus()} }

сообщение об ошибке:

Object is possibly 'null'

const refsFocus: React.MutableRefObject<null>

Я не могу понять, что я делаю не так

Ответ №1:

Вы должны назначить крючок useRef для ссылки Textinput следующим образом

 ref={refsFocus}
 

А затем в методе onPress вы должны назвать его так

 onPress={()=> { refsFocus.current.focus()} }
 

Также удалите эту точку с запятой из функции со стрелкой onPress.

Комментарии:

1. Object is possibly 'null' , получение этой ошибки на refsFocus.current