React-Native: доступ к значению TextField в другом классе

Как разработчик iOS, я немного борюсь с нативным реагированием.

У меня есть два компонента внутри разных классов:

Компонент A — это представление с TextInput

class A extends Component<Props>{
    state = {
        textFieldValue: ""
    };  
    render() {
        return (
            <View>
                <TextInput placeholder = {this.props.placeholderText}
                            ref = {textField => {
                                this.textField = textField;
                            }}
                            value = {this.state.textFieldValue}
                            onChange = {e => this.setState({ textFieldValue: e.target.value})}/>
            </View>
        );}
}

Компонент B использует A в своем представлении

class B extends Component<Props>{
        render() {
            return (
                <View>
                   <A placeholder = {"test"}/>
                   <TouchableOpacity onPress = {() => {
                                //show text of input A here
                            }}>
                        <View>
                            <Text>{text}</Text>
                        </View>
                    </TouchableOpacity>
                </View>
            );}
    }

Как я могу получить доступ к значению/состоянию со значением TextInput в A из B, чтобы показать его при нажатии кнопки?

stackoverflow.com/questions/43168994/…
jgoday 21.03.2019 13:37
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
1
322
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Попробуйте это на классе B

    class B extends Component<Props>{
  render() {
      return (
          <View>
             <A placeholder = {"test"} ref = {c => this.textRef = c}/>
             <TouchableOpacity onPress = {() => {
                          //show text of input A here
                          alert(this.textRef.state.textFieldValue)
                      }}>
                  <View>
                      <Text>{text}</Text>
                  </View>
              </TouchableOpacity>
          </View>
      );}
}

Получите доступ к ссылке на класс A через реквизиты ref, а затем получите его собственное состояние.

это тоже было моим предположением, но оно возвращает undefined

arnoapp 21.03.2019 14:59

Хорошо, я использовал onChange вместо onChangeText... теперь это работает

arnoapp 21.03.2019 15:09

Другие вопросы по теме