Reactjs 状态未更新。我想从firestore获取数据
我已成功从firestore检索数据,但无法更新状态。 请检查代码Reactjs 状态未更新。我想从firestore获取数据,reactjs,firebase,google-cloud-firestore,react-hooks,Reactjs,Firebase,Google Cloud Firestore,React Hooks,我已成功从firestore检索数据,但无法更新状态。 请检查代码 export const TaskContextProvider = (props) => { const [Tasks, setTasks] = useState([]) const { User } = useContext(AuthContext) useEffect(() => { firebase.firestore() .collection(
export const TaskContextProvider = (props) => {
const [Tasks, setTasks] = useState([])
const { User } = useContext(AuthContext)
useEffect(() => {
firebase.firestore()
.collection("Users")
.doc(User.id)
.collection("Tasks")
.onSnapshot((snapshot) => {
const newtask = snapshot.docs.map((doc)=>({
id : doc.id,
...doc.data()
}))
setTasks(newtask)
console.log('newtask', newtask)
console.log('Tasks', Tasks)
})
}, [])
下面的控制台输出是
newtask (10) [{…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}]
Tasks []
setTasks
是异步的,当从设置新值的同一函数中调用时,可能永远不会显示正确的值。相反,将其记录在useffect
之外,以查看它是否正在实际更新。然后,您将看到每个渲染的console.log。这是否回答了您的问题?