reactjs - 反应条件页面渲染
问题描述
我正在使用 React 为我的前端应用程序创建主页。
如果他尚未登录,我希望它将用户引导到登录页面,如果他已经登录,则将他引导到另一个页面。我正在检查浏览器是否知道使用函数 getCurrentUser() 的用户。
这是我在主页上尝试做的。
SignIn 和 Myprofile 是我想要渲染的 React 组件。
function App() {
return (
{if getCurrentUser()==null {return <SignIn/>} else return { <Myprofile/>}}
)
这是getCurrentUser()的定义:
const getCurrentUser = () => {
return JSON.parse(localStorage.getItem("user"));
};
它看起来一切正常,但我看到的只是空白页。如果我为此处的选项之一添加 h1 标签:
function App() {
return (
{if getCurrentUser()==null {return <SignIn/>} else return {
<div>
<h1>hello</h1>
<Myprofile/>
</div>}}
)
我可以看到 H1,但看不到这些组件的其他元素。
我该如何解决?谢谢你!
解决方案
您可以使用三元运算符,以便将return
语句替换为?
and:
并且if
可以删除关键字。我相信,条件==
应该是===
根据新的javascript。
function App() {
return (
<div>
{getCurrentUser() === null ? (
<SignIn />
) : (
<div>
<h1>hello</h1>
<Myprofile />
</div>
)}
</div>
);
}
推荐阅读
- android - SDK 许可证在 mac 和 sdkmanager 上不起作用 – 许可证不起作用
- c++ - 如何在不同的行上输出不同字符串的正确值?
- html - Django 电子邮件模板 gmail 和 mailhog 中的不同样式
- python - Python:如何将变量及其各自的字符串转换为数据框?
- flutter - 如何从列表中获取从开始日期到结束日期的数据表行?
- node.js - 禁用在 cognito 上的电子邮件验证时发送的验证码
- mysql - XAMPP MySQL 突然无缘无故停止工作
- java - 如何在 postgres 中查询这个 JSONB 列?
- javascript - 未找到 node_modules/cypress/types
- reactjs - 从 ReactJS 的列表中选择特定元素