You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Next.js条件渲染报错:多组件代码块无法正常运行

解决Next.js条件渲染多组件报错问题

问题出在JSX的语法规则:React(以及基于React的Next.js)要求组件的返回值或条件分支的返回内容必须是单个根元素,不能直接并列多个元素。你第二个例子里的条件渲染分支直接返回了两个<Text>组件,违反了这个规则,所以会报错。

下面是三种可行的解决方式:

1. 使用React Fragment(推荐)

Fragment不会在DOM中生成额外的节点,是最轻量化的解决方案:

const MyComponent = () => {
  return (
    <h1>Hello world</h1>

    {isTrue ? (
      <>
        <Text>Component 1</Text>
        <Text>Component 2</Text>
      </>
    ) : 'No component'}
  )
}

也可以写成完整的<React.Fragment>标签,效果一致。

2. 使用普通容器元素

如果不介意多一层DOM节点,可以用<div>或其他HTML标签包裹:

const MyComponent = () => {
  return (
    <h1>Hello world</h1>

    {isTrue ? (
      <div>
        <Text>Component 1</Text>
        <Text>Component 2</Text>
      </div>
    ) : 'No component'}
  )
}

3. 返回元素数组

将多个元素放在数组中返回,但必须给每个元素添加唯一的key属性:

const MyComponent = () => {
  return (
    <h1>Hello world</h1>

    {isTrue ? (
      [
        <Text key="component-1">Component 1</Text>,
        <Text key="component-2">Component 2</Text>
      ]
    ) : 'No component'}
  )
}

另外注意:你代码里的Hello word是拼写错误,建议修正为Hello world。

内容的提问来源于stack exchange,提问作者Anderson Ferreira

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 22:50:40