ОБНОВЛЕНИЕ :
используйте глобальную переменную, которая будет работать.
ref={ref=>{
global.input=ref;
}}
теперь вы можете использовать global.input.focus()
в любом месте приложения после этого экрана.
вот пример для достижения этого: https://snack.expo.io/ryJk3hFKN
Вы можете создать одну функцию, которая возвращает ref этого компонента.
и передать эту функцию в качестве реквизита в других компонентах
import * as React from 'react';
import { Text, View, StyleSheet, TextInput, TouchableOpacity } from 'react-native';
export default class App extends React.Component {
getInputRef = () => this.input;
render() {
return (
<View style={styles.container}>
<TextInput
ref={ref => {
this.input = ref;
}}
placeholder="Hi there"
/>
<SecondComp getInputRef={this.getInputRef} />
</View>
);
}
}
class SecondComp extends React.Component {
render() {
return (
<TouchableOpacity
onPress={() => {
this.props.getInputRef().focus();
}}>
<Text>click to Focus TextInput from the other component</Text>
</TouchableOpacity>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'space-around',
backgroundColor: '#ecf0f1',
padding: 8,
},
});