我正在尝试从firebase-firestore获取用户名和个人资料图片。但是,当我更新状态并尝试输入新值时,它会一直回到旧值。
我基本上是让用户按下编辑个人资料并更改其用户名。由于userName
状态的原因,当前用户名显示在文本字段中,但不允许我对其进行更新。它一直在重置。我敢肯定这是一个小的简单解决方案
import React,{useState, useEffect} from 'react'
import {Input} from 'react-native-elements'
import {useSelector} from 'react-redux'
import firebase from 'firebase'
const EditProfile = () => {
const [uid, setUId] = useState()
const [userName, setName] = useState()
const [loading, setLoading] = useState(false)
const profile = useSelector(state => state.User.uniqueId)
useEffect(() => {
setLoading(true)
getUserProfile()
})
const getUserProfile = async () => {
setUId(profile)
try {
firebase.firestore()
.collection('Users')
.doc(uid)
.onSnapshot(doc => {
setName(doc.data().fullName)
})
} catch (err) {
setLoading(true)
}
}
return (
<View style={styles.container}>
<View>
<Input
label='Name'
value={userName}
onChangeText={text => setName(text)}
/>
</View>
</View>
)
}
export default EditProfile
请你帮我一下。我真的很感激。提前谢谢你
这将使其在每次重新渲染时获取并更新:
useEffect(() => {
setLoading(true)
getUserProfile()
})
如果只希望在安装时发生这种情况,请提供一个空的dep数组:
useEffect(() => {
setLoading(true)
getUserProfile()
}, [])
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句