#react-native #react-native-navigation #autofocus
Вопрос:
У меня проблема с автофокусом для ввода текста в React Native. У меня есть два экрана, когда я нажимаю кнопку на экране A, она переходит на экран B, и у меня есть текстовый ввод на экране B. Я хочу, чтобы этот текстовый ввод автоматически фокусировался, когда я перейду на экран B
Это мой код, но он не работает, я вижу клавиатуру на секунду, и она исчезает.
<TextInput
placeholder="Search"
style={styles.searchBar}
autoFocus={true}
value={text}
onChangeText={changeText}
/>
Я думаю, что не работает автофокус со стеком навигации, и после того, как я попробовал с ref, но снова не смог добиться успеха.
const inputRef = useRef(null);
const onFocusHandler = () => {
inputRef.current.focus();
}
useEffect(() => {
onFocusHandler();
}, []);
TextInput с ссылкой
<TextInput
placeholder="Search"
style={styles.searchBar}
ref={inputRef}
value={text}
onChangeText={changeText}
/>
Комментарии:
1. Попробуйте дать некоторый тайм-аут для
onFocusHandler
2. Большое вам спасибо, это сработало! Но я не понял, почему он не работает, работает без тайм-аута ?
3. потому что в
useEffect
полеinputRef
еще не назначено, или вы также должны использоватьonLayout
обратный вызов для установки фокуса