使用useEffect时如何等待渲染完成以获取useContext?
我有一个从UserPage 如下所示的到外部身份验证服务的条件重定向 。条件是这样的,如果我的UserContext不包含用户对象,那么页面将被重定向到 https://urltoauthenticate:5000/user 进行用户身份验证。条件在第一次运行时满足并进入认证服务
但是问题是在成功认证后发生的。在身份验证成功的情况下,即使UserContext提供了用户对象,它在第一次渲染中也会为空。在这里,我如何等待用户对象可用并准备就绪,以便页面不会再次重定向到身份验证服务?
import React, { useEffect, useContext } from 'react';
import { UserContext } from '../context/UserContext';
export default function UserPage () {
const user = useContext(UserContext)
useEffect(() => {
if(user === null{
window.location.assign("https://urltoauthenticate:5000/user");
}
}, [users]);
return(
<div>Hello {user.name}</div>
)
}