Значение TextInput, имеющее существующую переменную, выводится как неопределенное?Если я ТИП не добавляю буквы / буквы к текстовому вводу - PullRequest
0 голосов
/ 19 сентября 2019

Как я уже сказал в заголовке value={this.state.textInputValue}, он имеет значение.Но когда я нажимаю «Отправить», он считается неопределенным.Если я ТИП не добавляю буквы / буквы к текстовому вводу.

Я пытался добавить

  handleMessageSelectionChange = () => {
    let emailValueAdd = "sadasdas" + this.state.emailValue;
    this.setState({
      textInputValue: String(emailValueAdd)
    });
  };

Я пытался изменить значение textInput, потому что я ДУМАЛ, что это сработает и изменитполе ввода, как если бы я набирал его, НО он не работал, он ничего не изменил.

Вот мой код:

export default class Profile extends Component {
  constructor(props) {
    super(props);
    this.state = {
      fadeAnim: new Animated.Value(0),
      emailValue: ""
    };
  }

this.state.email - это переменная, в которой я хранил пользователейэлектронная почта от имени входа с asyncStorage.

  handleMessageSelectionChange = () => {
    let emailValueAdd = "sadasdas" + this.state.emailValue;
    this.setState({
      textInputValue: String(emailValueAdd)
    });
  };

<TextInput
              autoFocus
              style={styles.TextInput}
              placeholder="Email"
              onChangeText={email => this.setState({ email })}
              underlineColorAndroid="transparent"
              value={this.state.textInputValue}
              onSelectionChange={this.handleMessageSelectionChange}
            />



textInput, конечно, внутри render(){return()}.

Я надеюсь, что кто-то может помочь мне исправить, что значение не определено.Это значило бы для меня мир, я хочу расти в React Native и узнавать больше.Надеюсь, что кто-то может объяснить и исправить это для меня.Я ценю ваше время и помощь.

Спасибо!

1 Ответ

0 голосов
/ 19 сентября 2019

Вы изменяете textInputValue, но запускаете компонент с emailValue, компонент монтирует ожидающее значение состояния this.state.textInputValue, но оно не существует, следовательно, не определено.Измените одно из них так, чтобы они были равны.

Реагирующие входы в целом имеют отношение к конкретным шаблонам, управляемым и неконтролируемым, как сказано здесь :

В HTML форматакие элементы, как, и, как правило, поддерживают свое собственное состояние и обновляют его на основе пользовательского ввода. В React изменяемое состояние обычно сохраняется в свойстве состояния компонентов и обновляется только с помощью setState ().

...