Home > database >  TextInput return type in React Native
TextInput return type in React Native

Time:01-16

I was trying to update firebase database with useState that got its value from TextInput. But apparently the useState datatype changed to object instead of string. How do I go about this since firebase only takes string to update the database.

 const UpdateUser = async () => {
try {
  db.ref("users/"   auth.currentUser.uid).update({
    name: newuser,
  });
} catch (error) {
  alert(error);
}
setNewuser("");};

TextInput Code:

 <View>
    <Text style={styles.ProfileName}>Display Username:</Text>
    <TextInput
      placeholder={user}
      value={newuser}
      onChange={(text) => {
        setNewuser(text);
      }}
    />
    <Button onPress={UpdateUser} title="Change" />
  </View>

CodePudding user response:

onChangeText is a simple prop, that gives whatever is the value of the input field on every change.//string

onChange passes an event with { nativeEvent: { eventCount, target, text} }. //object

You can find more about the difference here. Simply change it to onChangeText will work.

CodePudding user response:

Change onChange to OnChangeText then it will work

refer this

CodePudding user response:

Try this

<View>
    <Text style={styles.ProfileName}>Display Username:</Text>
    <TextInput
      placeholder={user}
      value={newuser}
      onChange={(e) => {
        setNewuser(e.target.value);
      }}
    />
    <Button onPress={UpdateUser} title="Change" />
  </View>
  •  Tags:  
  • Related