React Native Firebase - обновление базы данных со значениями состояния - PullRequest
0 голосов
/ 06 июня 2018

Я хочу обновить значения в базе данных firebase, основываясь на введенной пользовательской информации из текстовых входов.Я устанавливаю состояние в событиях onChange текстовых входов, как обычно.Но когда я, наконец, хочу обновить базу данных введенными данными, ничего не происходит.Я пробовал это тестировать с жестко закодированными строками вместо значений состояния, это работало, и это обновляло базу данных.Как я могу заставить это работать для значений состояния?

  constructor(props) {
super(props);

this.state = {
  name: "",
  surName: "",
  email: ""
};

}

                    <View style={styles.surNameHolder}>
                  <Text style={styles.surNameLabel}>Nachname</Text>
                  <TextInput
                    style={styles.surNameText}
                    placeholder="Musterman"
                    keyboardType="default"
                    hideUnderline={true}
                    onChange={surName =>
                      this.setState({ surName: surName })
                    }
                  />
                </View>
                <View style={styles.nameHolder}>
                  <Text style={styles.nameLabel}>Vorname</Text>
                  <TextInput
                    style={styles.nameText}
                    placeholder="Max"
                    keyboardType="default"
                    hideUnderline={true}
                    onChange={name => this.setState({ name: name })}
                  />
                </View>
              </View>
              <View style={styles.mailHolder}>
                <Text style={styles.mailLabel}>E-Mail</Text>
                <TextInput
                  style={styles.mailText}
                  placeholder="musterman@max.com"
                  keyboardType="default"
                  hideUnderline={true}
                  onChange={value => this.setState({ email: value })}
                />
              </View>
              <View
                style={{
                  flex: 1,
                  justifyContent: "center",
                  alignItems: "center",
                  marginTop: 20
                }}
              >
                <View center style={styles.postButton}>
                  <TouchableOpacity onPress={this.updateUserData}>
                    <Text style={styles.postButtonText}>
                      AGB´s akzeptiert
                    </Text>
                  </TouchableOpacity>
                </View>

  updateUserData = () => {
if (this.state.name) {
  if (this.state.surName) {
    if (this.state.email) {
      var currentUserRef = firebase
        .database()
        .ref("Users")
        .child(firebase.auth().currentUser.uid);

      currentUserRef.update({
        firstName: this.state.name
      });
    }
  }
}

};

1 Ответ

0 голосов
/ 06 июня 2018

Вы должны использовать onChangeText вместо onChange, чтобы иметь текст в качестве аргумента

https://facebook.github.io/react-native/docs/textinput.html#onchangetext

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...