Estaba tratando de actualizar la base de datos de firebase con useState que obtuvo su valor de TextInput. Pero aparentemente el tipo de datos useState cambió a objeto en lugar de cadena. ¿Cómo hago esto ya que firebase solo toma cadenas para actualizar la base de datos?
const UpdateUser = async () => { try { db.ref("users/" + auth.currentUser.uid).update({ name: newuser, }); } catch (error) { alert(error); } setNewuser("");};Código de entrada de texto:
<View> <Text style={styles.ProfileName}>Display Username:</Text> <TextInput placeholder={user} value={newuser} onChange={(text) => { setNewuser(text); }} /> <Button onPress={UpdateUser} title="Change" /> </View>onChangeText es un accesorio simple, que da el valor del campo de entrada en cada cambio. //cuerda
onChange pasa un evento con { nativeEvent: { eventCount, target, text} } . //objeto
Puede encontrar más información sobre la diferencia aquí . Simplemente cámbielo a onChangeText funcionará.
Cambie onChange a OnChangeText y luego funcionará
Prueba esto
<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>