Я добавил статическую переменную внутри класса
static textField = null;
и затем назначьте его внутри navigationOptions
<TextInput
ref={(ref) => YourClass.textField = ref}
...
затем, когда мне нужно передать события (не уверен, что это лучший способ), я либо выполняю прослушиватель pubsub-js
и публикую событие, либо пересылаю события - оба способа объяснены с помощью кода ниже.
<TextInput
ref={(ref) => YourClass.textField = ref}
onChangeText={(text) => {
YourClass.textField.onChangeText(text);
// PubSub.publish(Constants.FIELD_DID_CHANGE, [text,]);
}}
тогда когда didFocus
- viewDidAppear эквивалент
let textField = YourClass.textField;
textField.onChangeText = (text) => this._textFieldDidChange(text);
или зарегистрировать PubSub
объект в componentDidMount
// this.textFieldDidChangeListener = PubSub.subscribe(Constants.FIELD_DID_CHANGE, (msg, data) => this._textFieldDidChange(data));