javascript - 我的演示组件的 return 语句内的 if 语句引发意外的标记错误

标签 javascript reactjs react-redux

我有一个名为 Navbar.jsx 的演示组件,它根据用户是否经过身份验证返回另一个演示组件。当我运行 webpack 时,我收到一条错误,指出 if 语句中的“if”是意外标记。您将在 navbar-collapse div 中看到 if else 语句。这是 Navbar.jsx:

import React, {PropTypes} from 'react';
import PreAuthNavTabs from './PreAuthNavTabs';
import PostAuthNavTabs from './PostAuthNavTabs';

const Navbar = ({ activeUser, loginUser }) => {

    return (
        <div>
            <div className="navbar navbar-default navbar-fixed-top" role="navigation">
              <div className="container">
                <div className="navbar-header">
                    <button type="button" className="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
                    <span className="sr-only">Toggle Navigaton</span>
                        <span className="icon-bar"></span>
                        <span className="icon-bar"></span>
                        <span className="icon-bar"></span>
                    </button>
                    <Link to="/inventory"><img className="navbar-brand" src='../../css/hello_bacsi.png'></img></Link>
                </div>
                <div className="navbar-collapse collapse">
                            {
                                if (activeUser) {
                                    return <PostAuthNavTabs activeUser={activeUser} />;
                                } else {
                                    return <PreAuthNavTabs loginUser={loginUser} />;
                                }
                            }
                </div>
              </div>
            </div>
            </div>
    );

};

Navbar.propTypes = {
    activeUser: PropTypes.object,
    loginUser: PropTypes.func
};

export default Navbar;

最佳答案

您不能在 JSX 中使用 if-else 语句。看看the relevant docs .

<小时/>

而是使用三元运算符:

<div className="navbar-collapse collapse">
     {activeUser ?
         <PostAuthNavTabs activeUser={activeUser} /> :
         <PreAuthNavTabs loginUser={loginUser} />
     }
</div>

关于javascript - 我的演示组件的 return 语句内的 if 语句引发意外的标记错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37933403/

相关文章:

javascript - jQuery Flot 跳过 x 轴值

javascript - ReactJs 添加事件类到按钮

javascript - React-redux:循环遍历 props 并填充组件

reactjs - 使用 React Redux 显示 Snackbar

javascript - 在 iframe 中禁用视频

javascript - 如何检测请求是否被中止?

javascript - 在 Javascript 中使用带有数字的 charAt

javascript - 如何在 Redux-form 中有可搜索的下拉菜单

javascript - 为什么 Java 中的 'executeAsyncScript (window.setTimeout (5000))' 函数会在 5 秒后等待下一个函数执行?

javascript - 根据用户选择显示 Material ui TextField