【发布时间】:2020-03-13 20:44:53
【问题描述】:
这是我的错误 TypeError:无法读取 null 的属性“电子邮件”
这是我的提供者组件
import React, { useState } from 'react'
import { whatchUserChanges } from '../services'
export const AuthContext = React.createContext()
export default function AuthContextProvider(props) {
const [state, setState] = useState({
isLoggedIn: false,
user: null,
authReady:false
})
useState(() => {
whatchUserChanges((user) => {
if (user) {
setState({
isLoggedIn: true,
user: user,
authReady:true
})
} else {
setState({
isLoggedIn: false,
user: null,
authReady:true
})
}
})
}, [])
return (
<AuthContext.Provider value={state}>
{props.children}
</AuthContext.Provider>
)
}
这是我想要呈现我的属性电子邮件的组件
import React, { useContext } from "react"
import { AuthContext } from "../../context/auth"
export default function Dashboard() {
const contextAuth = useContext(AuthContext)
console.log(contextAuth.user.email)
return (
<div className="Dashboard">El email es {contextAuth.user.email}</div>
)
}
当我删除这部分时
{contextAuth.user.email}
我在第一次渲染中看到 contextAuth.user.emai 为空,但在控制台的第二次渲染中 contextAuth.user.emai 不是空。
这是我的存储库:https://github.com/RotomFormProgramador/learnfirebase
我是如何解决这个问题的?
【问题讨论】:
标签: javascript reactjs firebase react-hooks use-context