当前位置: 首页 > 面试题库 >

React-表达式必须具有一个父元素?

苗冯浩
2023-03-14
问题内容

我是React的新手,我想知道这里的标准是什么。

想象一下,我有一个像这样的反应路由器:

<Router history={history}>
    <Route path="/" component={App}>
      <Route path="home component={Home} />
      <Route path="about" component={About} />
      <Route path="inbox" component={Inbox} />
      <Route path="contacts" component={Contacts} />
    </Route>
</Router>

现在我想删除如果prop.mail设置为的两条路线false,因此一种理智的做法如下所示:

<Router history={history}>
      <Route path="/" component={App}>
        <Route path="home component={Home} />
        <Route path="about" component={About} />

        { if.this.props.mail ? 
          <Route path="inbox" component={Inbox} />
          <Route path="contacts" component={Contacts} />
        : null }

      </Route>
 </Router>

但是有两条路线,React返回错误:

表达式必须具有一个父元素。

我不想在这里使用多个ifs。React首选的处理方式是什么?


问题答案:

将它们放在一个数组中(也分配键):

{ if.this.props.mail ? 
    [
        <Route key={0} path="inbox" component={Inbox} />,
        <Route key={1} path="contacts" component={Contacts} />
    ]
: null }

使用最新的React版本,您也可以这样尝试
React.Fragment

{ if.this.props.mail ? 
    <React.Fragment>
        <Route path="inbox" component={Inbox} />,
        <Route path="contacts" component={Contacts} />
    </React.Fragment>
: null }


 类似资料:
  • 问题内容: 我是angularJs的新手。我正在尝试创建包含输入元素和按钮的新指令。我想使用此指令在单击按钮时清除输入文本。 当我在html中使用指令时,出现以下错误: 的HTML: clearable_input.js: 我无法弄清楚如何实现这一目标。 问题答案: 好吧,这个错误是不言自明的。您的模板需要具有一个根,而您的必须具有两个根。解决此问题的最简单方法是将整个内容包装在a 或a中: 之前

  • 问题内容: 我想将所有表达式与一个空格完全匹配。目前,我正在使用。但是,这似乎不是一个很好的方法。 问题答案: 为什么不?很好,有点复杂:

  • 问题内容: 我在switch / case语句中遇到问题。该错误显示:“ case表达式必须是常量表达式”。我理解该错误,可以使用If来解决它,但是有人可以告诉我为什么case表达式在switch / case中必须是常量。我的错误的代码示例: 谢谢你的解释!! 问题答案: 因此可以在编译阶段进行评估(静态检查) 请参阅:http://docs.oracle.com/javase/specs/jl

  • 从0.13.2更新到0.14.2后,我发现以下错误: 对此已经有几个问题了。最常见的错误是拼错React.component(没有大写字母C)。另一个是尝试使用ES6类的版本 但我已经成功地使用了带有React 0.13.x的ES6类,我在所有地方都使用大写字母C,并且记录React.Component似乎给出了一个合适的结果(函数ReactComponent(…) 经过一些搜索,我做了这3个测试

  • 我有以下简单的代码: 我得到了这个错误: "必须返回有效的React元素(或null)。您可能已返回未定义、数组或其他无效对象。"

  • 问题内容: Eclipse不断给我错误: 但是我绝对可以给注解一个常量。 如果我将其更改为 很高兴,但我不必这样做。有谁知道为什么我的MIN_YEAR常量使用评估表达式而不是纯数字声明时不被视为常量? 问题答案: 表达方式 将仅在运行时确定,但是 是在编译时确定的,因此允许使用,因为注释中的值应在编译时而不是运行时解析。