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

如何在React中的另一个return语句中返回多行JSX?

曹华荣
2023-03-14
问题内容

单行工作正常

render: function () {
  return (
    {[1,2,3].map(function (n) {
      return <p>{n}</p>
    }}
  );
}

不适用于多行

render: function () {
  return (
    {[1,2,3].map(function (n) {
      return (
        <h3>Item {n}</h3>
        <p>Description {n}</p>
      )
    }}
  );
}

谢谢。


问题答案:

尝试将标签视为函数调用(请参阅docs)。然后第一个变成:

{[1,2,3].map(function (n) {
  return React.DOM.p(...);
})}

第二个:

{[1,2,3].map(function (n) {
  return (
    React.DOM.h3(...)
    React.DOM.p(...)
  )
})}

现在应该清楚,第二个片段实际上没有任何意义(在JS中不能返回多个值)。您必须将其包装在另一个元素中(很可能是您想要的,这样您还可以提供有效的key属性),或者可以使用类似以下内容的方法:

{[1,2,3].map(function (n) {
  return ([
    React.DOM.h3(...),
    React.DOM.p(...)
  ]);
})}

使用JSX糖:

{[1,2,3].map(function (n) {
  return ([
    <h3></h3>, // note the comma
    <p></p>
  ]);
})}

您不需要展平结果数组,React会为您完成。请参阅以下小提琴http://jsfiddle.net/mEB2V/1/。再说一遍:从长远来看,将这两个元素包装到div
/ section中将很可能会更好。



 类似资料:
  • 问题内容: 说我想做,如何在同一个mysql_query()中做它们? 编辑: 由于这个问题有很多看法,我想指出,自PHP 5.5起,其他功能现在已被弃用,不应使用。 问题答案: 我从来没有尝试过,但是我认为您可以使用mysqli :: multi_query 。拒绝多条语句的好处之一是,它可以立即排除一些更常见的SQL注入攻击,例如添加一条语句。因此,您可能需要注意多个语句。

  • 问题内容: 我正在尝试使用ADO一次在MS Access中创建多个表。是否可以在一个操作中执行多个语句?例如: 尽管每个create语句都可以完美地独立工作,但由于导致此操作失败。有没有办法做这种事情?也将有添加约束,添加索引等的语句,我真的很希望能够做到这一点,这样我就不必将字符串分成单独的部分。 问题答案: ADO to MS Access不支持批处理SQL语句。您需要将每个语句作为单独的执行

  • 问题内容: 我想知道我们如何获得函数返回的值-python return语句实际返回的内容。 考虑以下代码: 调用时,我们获得了价值。 绑定整数对象。 这是什么意思?return语句实际上在这里返回什么?该对象?还是变量名?还是绑定到对象?或者是其他东西? 我们如何获得return语句返回的值? 问题答案: x绑定整数对象5。 是的,是一个持有对整数对象5的引用的变量,该对象也持有对该整数对象的引

  • 问题内容: 因此,我正在为不和谐而开发一个聊天机器人,现在正在开发一个可以用作待办事项列表的功能。我有一个命令可以将任务添加到列表中,并将它们存储在字典中。但是,我的问题是以更易读的格式返回列表(参见图片)。 任务存储在一个称为中。但是,为了使bot实际发送消息,我需要使用一条语句,否则它将仅将其打印到控制台而不是实际的聊天记录(参见图片)。 这是我尝试解决的方法,但是由于我使用了for循环,因此

  • 问题内容: 我有一张桌子,里面有人和他们拥有的汽车 该查询为我提供了和拥有完全相同的汽车以及Lisa本人的人,这很好。 结果: 如果我想查找所有拥有相同汽车的人,请重新运行查询,结果应为我。 现在,我有一个Java名称列表,对于每个名称,我都运行此查询。真的很慢。无论如何,是否可以找到所有拥有相同汽车的人,并在单个数据库调用中将结果划分为组? 例如,使用第一个表。我可以运行将名称分组的查询。请注意

  • 我正在使用php和mysqli创建登录页面,但是,当我键入错误的用户名和密码时,它无法显示错误消息。 如果我输入了错误的用户名,它只是无法登录,但$error没有出现,我试图将其更改为echo,但出现了错误,在我登录或键入任何内容之前,它将始终回显错误消息。我认为这意味着代码总是运行else语句。 有人知道我的代码出了什么问题吗?