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

JavaScript在React JSX内部循环

孟开宇
2023-03-14
问题内容

我正在React中尝试做类似以下的事情JSX(其中ObjectRow是一个单独的组件):

<tbody>
    for (var i=0; i < numrows; i++) {
        <ObjectRow/>
    } 
</tbody>

我意识到并理解为什么这是无效的JSX,因为它JSX映射到函数调用。但是,由于来自模板领域并且是的新手JSX,所以我不确定如何实现上述目标(多次添加组件)。


问题答案:

就像您只是在调用JavaScript函数一样。您不能使用for循环来调用函数的参数:

return tbody(
    for (var i = 0; i < numrows; i++) {
        ObjectRow()
    } 
)

查看如何将函数作为参数tbody传递给for循环,这当然是语法错误。

但是您可以创建一个数组,然后将其作为参数传递:

var rows = [];
for (var i = 0; i < numrows; i++) {
    rows.push(ObjectRow());
}
return tbody(rows);

使用JSX时,可以使用基本相同的结构:

var rows = [];
for (var i = 0; i < numrows; i++) {
    // note: we add a key prop here to allow react to uniquely identify each
    // element in this array. see: https://reactjs.org/docs/lists-and-keys.html
    rows.push(<ObjectRow key={i} />);
}
return <tbody>{rows}</tbody>;

顺便说一句,我的JavaScript示例几乎就是该JSX示例转换成的示例。与[BabelREPL]一起玩,以了解JSX的工作方式。



 类似资料:
  • 问题内容: 我相信在AS3中,您应该在循环外初始化所有变量,以提高性能。JavaScript也是如此吗?哪个更好/更快/最佳实践? 要么 问题答案: 有 绝对没有区别 意义还是性能,在JavaScript或ActionScript。 是解析器的指令,而 不是 运行时执行的命令。如果在函数体(*)中的任何位置一次或多次声明了特定的标识符,则该标识符在块中的所有使用将引用局部变量。声明是在循环内部,循

  • 问题内容: 我正在React中尝试执行以下操作(其中ObjectRow是一个单独的组件): 我意识到并理解为什么这是无效的,因为它映射到函数调用。但是,由于来自模板领域并且是的新手,所以我不确定如何实现上述目标(多次添加组件)。 问题答案: 就像您只是在调用JavaScript函数一样。您不能使用循环来调用函数的参数: 查看如何将函数作为参数传递给循环-导致语法错误。 但是您可以创建一个数组,然后

  • 问题内容: 我正在像这样的双循环内进行一些计算: 有没有办法让Loop在执行功能之前先完成?或程序在继续执行… 之前知道循环是否完成的任何方式 我可能会错过一些论坛,但是我发现的那些论坛并没有帮助我实现我想要实现的目标,而且我在NodeJS中做到了这一点,同时我也在问是否有现有的图书馆可以实现这一目标。 我忘了加起来,还是应该再问一个问题? 有没有一种方法可以同步进行迭代,即仅在当前迭代完成后才继

  • 问题内容: 我想遍历“节日” 的 ArrayList 并使用 get 方法获取其信息,并打印出其所有值。由于某些原因,当我使用此代码时,它将始终选择第“ 0”个值,而不增加循环。 如果我将值硬编码为“ get(1)”,它将获得正确的值,因此我的问题显然是语法。 问题答案: 造成具体问题的原因是,您将灰心丧气的旧式_脚本_和其后继EL混合在一起。它们不共享相同的变量范围。在中不可用 _scriptl

  • 我试图在for循环中获得for循环,因此输出如下: 我希望输出显示一个正方形 我不知道它为什么不这样做。下面是我的代码:

  • 我试图在任意年份的经济衰退中计算复利。以下promise函数计算可变投资组合的发展。 编辑的清晰度: const是一个从1到20循环一年的数组(是静态的) 三元()在每次运行的不同年份触发,导致不同年份的