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

Как разработчик 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, чтобы отобразить его на кнопкенажмите

1 Ответ

1 голос
/ 21 марта 2019

Попробуйте это для класса 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 props, затем получите свое собственное состояние.

...