【发布时间】:2022-01-16 03:00:43
【问题描述】:
我正在尝试使用从 TextInput 获取其值的 useState 更新 firebase 数据库。但显然 useState 数据类型更改为对象而不是字符串。我该怎么做,因为firebase只需要字符串来更新数据库。
const UpdateUser = async () => {
try {
db.ref("users/" + auth.currentUser.uid).update({
name: newuser,
});
} catch (error) {
alert(error);
}
setNewuser("");};
文本输入代码:
<View>
<Text style={styles.ProfileName}>Display Username:</Text>
<TextInput
placeholder={user}
value={newuser}
onChange={(text) => {
setNewuser(text);
}}
/>
<Button onPress={UpdateUser} title="Change" />
</View>
【问题讨论】:
-
我在这里看不到 useState 的用法,但是您应该考虑两件事。
onChange属性返回nativeEvent,而不是值。如果要获取值,应该使用onChangeTextprop,或者从nativeEvent中提取值。useState钩子返回一个包含两个元素的数组,state和setState动作。你应该提取那些解构赋值const [newUser, setNewuser] = useState(""); -
是的 onChangeText 工作。 newuser 是一个 useState,我只是没有分享那部分代码。非常感谢!附言。如果您希望您可以发布答案,我很乐意批准。
标签: javascript react-native firebase-realtime-database expo