我正在 React 中开发一个 Web 应用程序。我正在尝试执行以下操作:
-
从数据库中获取用户信息并使用上下文 API 进行存储。
-
在上下文更改时呈现组件。
问题是更新上下文显然存在时间滞后,因此组件不会重新呈现。如何确保组件在更新上下文值后重新呈现?
以下是我正在使用的代码:
const User = () => {
const {userinfo, setuserinfo} = useContext(Userinfo) //Declare useContext hooks
useEffect(()=>{
/*
Compute the value of mid
*/
setuserinfo(mid); //Set 'userinfo' using context API
},[])
return (
<>
{userinfo.map(ui =>
//JSX to map userinfo to UI components
)}
</>
)
}
提前非常感谢!
在尝试将userinfo
映射到渲染组件之前,您可以检查或验证它。
例如
// or use lodash.isNil, or lodash.isEmpty, or whatever check you want
const isNil = o => o === null || o === undefined;
return ( isNil(userInfo) ?
<span>Loading...</span> :
<>
{userinfo.map(ui =>
//JSX to map userinfo to UI components
)}
</>
);
你可以尝试这样的事情。
return userinfo && Array.isArray(userinfo) && userinfo.length ? (
<>
{userinfo.map(ui =>
//JSX to map userinfo to UI components
)}
</>
) : <span>Loading... (or whatever)</span>;