You need to enable JavaScript to run this app. JSX主花括号表达式内嵌套子花括号表达式触发报错如何解决
优惠活动
大模型
产品
解决方案
定价
更多

JSX主花括号表达式内嵌套子花括号表达式触发报错如何解决

错误原因

你触发的是JSX的基础语法约束:

  • 单对{}包裹的范围属于单个JS表达式上下文,只能返回一个合法值,你原来的代码在同一对{}里并列放了两个独立的条件渲染逻辑,相当于同时要返回两个JSX节点,不符合语法要求。
  • 同时你在顶层{}内部又嵌套了一对{props.appData && ...}的花括号,相当于在纯JS表达式上下文里误用了JSX的插值语法,就算删掉内部花括号,并列返回两个节点的问题还是存在。

修复方案

有两种常用的修复方式,按需选择即可:

方案1:拆成两个独立的表达式块(更推荐,可读性更高)

把两个条件渲染逻辑分别放在各自的{}中,不要包裹在同一对顶层花括号里:

{!isNonParticipatingUser(props) && 
    <LinkContainer to="/contactUs">
        <Dropdown.Item href="#">Contact Us</Dropdown.Item>
    </LinkContainer>
}
{props.appData && props.appData.appProperties &&
    <Dropdown.Item target="_blank" href={getAppPropertiesValue(props, 'link.employee.faq')}>FAQs
    </Dropdown.Item>
}

方案2:用Fragment包裹成单个根节点返回

如果必须放在同一对{}里,用React.Fragment的短语法<></>把两个节点包裹成单个根元素即可:

{
  <>
    {!isNonParticipatingUser(props) && 
      <LinkContainer to="/contactUs">
        <Dropdown.Item href="#">Contact Us</Dropdown.Item>
      </LinkContainer>
    }
    {props.appData && props.appData.appProperties &&
      <Dropdown.Item target="_blank" href={getAppPropertiesValue(props, 'link.employee.faq')}>FAQs
      </Dropdown.Item>
    }
  </>
}

内容的提问来源于stack exchange,提问作者gene b.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 15:18:01